- 博客(35)
- 资源 (1)
- 收藏
- 关注

原创 安全检查及防御建议
本报告详细列举了针对Web应用和服务器系统的安全检查列表,旨在识别潜在的安全风险并提供相应的防御建议。报告覆盖了nginx配置、web应用安全、服务器检查等多个方面,具体内容包括但不限于XSS攻击防护、SQL注入防御、敏感信息保护、登录安全、文件上传下载限制、版本升级、进程管理等。通过对这些安全问题的逐一排查和防御建议的实施,可以有效提升系统的整体安全性,防止潜在的安全威胁。
2025-03-31 11:53:59
489
原创 VMware的安装
Ninth step: 自己在百度搜索一个vmware12密匙,粘贴复制,然后点击输入。Sixth step: 用户体验设置,建议全部取消勾选,然后点击下一步。Forth step: 选择VMware安装位置,然后点击下一步。Fifth step: 根据个人喜好选择,然后点击下一步。Eighth step: 等待安装完成,然后点击许可证。Third step: 同意许可,然后继续点击下一步。Second step:引导页面,直接点击下一步。
2024-11-11 15:08:07
209
原创 安装centos
以root用户身份登录: 输入 root , 然后输入密码 即可登录成功。镜像检测,在这里可以直接按下Esc键,跳过检测。等待一会, 就会出现以下界面。2 关联centOS镜像。
2024-11-11 11:54:11
267
原创 批量数据迁移
数据迁移绝对是一个让人头疼的问题,很有幸前段时间我遇到了.一个很古老的系统使用SqlServer数据库由外包人员开发,你们也都懂得,现在需要进行系统重构,旧系统只提供了通过获取100条数据的接口,可是针对表里上千万的数据,简直是闹着玩,特意整理了阿里云的rds数据迁移功能.
2024-11-04 16:27:07
459
原创 java面试题
人员细分,模块细分,粒度越小每个人每个服务都可以专注于做这一块得东西,业务复杂性大大降低,服务可以进行独立的部署和扩展,一个服务出现问题几乎不会影响到其他服务,某个服务出现瓶颈可以很方便的扩展,每个服务可以有自己的数据库,天然的就进行了这种分库分表,在领导的综合考虑之下我们使用了SpringCloud alibaba这一套方案。根据上面我们知道,java栈、程序计数器、本地方法栈都是线程私有的,线程生就生,线程灭就灭,栈中的栈帧随着方法的结束也会撤销,内存自然就跟着回收了。打游戏的同学可以想象为游戏存盘。
2024-11-04 15:00:51
1126
原创 微服务组件面试题
如果这个时候其它的机器也处在⼀个边缘状态的时候,Sentinel 提供了对应的保护机制,让系统的⼊⼝流量和系统的负载达到⼀个平衡,保证系统在能⼒范围之内处理最多的请求。在微服务架构中,我们将业务拆分成⼀个个的服务,服务与服务之间可以相互调⽤,但是由于⽹络原因或者服务⾃身的原因,服务并不能保证100%可⽤,如果单个服务出现问题,调⽤这个服务就会出现⽹络延迟,此时若有⼤量的请求涌⼊,由于服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果。然后是Group,用来对服务分组。
2024-10-31 16:40:54
833
原创 Nacos安装与配置(Windows)
Nacos可以从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略。一般开发中,都会存在三个环境,dev-开发环境,uat-测试环境,master-生产环境,这里的环境隔离就是可以根据这个来划分,用来防止 开发环境的服务 访问到了 测试环境的服务。Nacos提供基于DNS协议的服务发现能力,旨在支持异构语言的服务发现,支持将注册在Nacos上的服务以域名的方式暴露端口,让三方应用方便的查阅和发现。
2024-10-31 16:25:15
2563
原创 Javaweb项目发布到阿里云服务器
Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。intellij idea:是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn、github等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。保证能够正常运行,最好是服务器的mysql的密码与本地的密码一致。标签,修改为war。
2024-10-30 17:29:02
421
原创 数据库优化
尽量不要对数据进行分片,因为拆分会带来逻辑、部署、运维的各种复杂度 ,一般的数据表在优化得当的情况下支撑千万以下的数据量是没有太大问题的。,如果主键索引是自增ID,那么只需要不断向后排列即可,如果是UUID,由于到来的ID与原来的大小不确定,会造成非常多的数据插入,数据移动,然后导致产生很多的内存碎片,进而造成插入性能的下降。系统的吞吐量瓶颈往往出现在数据库的访问速度上,随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢,数据是存放在磁盘上的,读写速度无法和内存相比。
2024-10-30 16:58:40
463
原创 RabbitMq完全知识整理
不同进程(process)之间传递消息时,两个进程之间耦合程度过高,改动一个进程,引发必须修改另一个进程,为了隔离这两个进程,在两进程间抽离出一层(一个模块),所有两进程之间传递的消息,都必须通过消息队列来传递,单独修改某一个进程,不会影响另一个;不同进程(process)之间传递消息时,为了实现标准化,将消息的格式规范化了,并且,某一个进程接受的消息太多,一下子无法处理完,并且也有先后顺序,必须对收到的消息进行排队,因此诞生了事实上的消息队列;发送单个消息的生产者,以及接收消息并将其打印出来的消费者。
2024-10-30 16:45:33
1075
原创 git仓库基本使用
3. 分支(Branch):分支是指从主分支(通常是`master`分支)分离出来的一条独立的开发路径。一个仓库可以包含多个文件和文件夹。8. 推送到远程仓库:使用`git push origin `命令将本地的修改推送到远程仓库。6. 合并分支:在目标分支上使用`git merge `命令将指定分支的修改合并到当前分支。5. 切换分支:使用`git checkout `命令切换到指定的分支。4. 创建分支:使用`git branch `命令创建一个新的分支。
2024-10-30 16:19:48
181
原创 Nginx面试题
Nginx 是一款高性能的HTTP服务器和反向代理服务器,也经常用于负载均衡。答: Nginx 是一个开源的高性能 HTTP 服务器和反向代理服务器。它的主要优势使用较少的资源处理高并发连接、提供高度的可靠性、支持热部署、提供灵活的配置方式以及良好的负载均衡和缓存功能。答: 负载均衡是分散来自客户端的请求到多个服务器上,以达到优化资源使用、最大化吞吐量、最小化响应时间和避免任何单一点故障的效果。Nginx 实现负载均衡通常是通过 upS。
2024-10-30 15:47:20
887
原创 SpringBoot面试题
由于 Spring Boot 官方提供了大量的非常方便的开箱即用的 Starter ,包括 Spring Security 的Starter ,使得在 Spring Boot 中使用 Spring Security 变得更加容易,甚至只需要添加一个依赖就可以保护所有的接口,所以,如果是 Spring Boot 项目,一般选择 Spring Security。因此,对于那些使用 JDK 8 的开发人员来说,升级到 JDK 17 可能会带来许多好处,包括更好的开发体验、更高的性能和更好的安全性。
2024-10-30 15:43:45
875
原创 Transactional注解三种失效场景及解决方法
然后运行另外一个测试用例,调用一个方法在类内部调用内部被@Transactional标注的事务方法,运行结果是事务不会正常开启,testMapper.insert(new Test(10,20,30))操作将会保存到数据库不会进行回滚。运行测试用例发现,虽然抛出异常,但是异常被捕捉了,没有抛出到方法 外, testMapper.insert(new Test(210,20,30))操作并没有回滚。//类内部调用@Transactional标注的方法。//测试内部调用事务方法是否正常。
2024-10-30 15:41:04
704
原创 Redis基础面试题
Redis结合了定期删除和惰性删除,基本上能很好的处理过期数据的清理,但是实际上还是有点问题的,如果过期key较多,定期删除漏掉了一部分,而且也没有及时去查,即没有走惰性删除,那么就会有大量的过期key堆积在内存中,导致redis内存耗尽,当内存耗尽之后,有新的key到来会发生什么事呢?查询时由业务程序判断是否过期,如果数据即将过期时,将缓存的时效延长,程序可以派遣一个线程去数据库中获取最新的数据,其他线程这时看到延长了的过期时间,就会继续使用旧数据,等派遣的线程获取最新数据后再更新缓存。
2024-10-30 15:35:03
524
原创 面试----人力资源部分
面对一个新的环境,首先我要求自己尽快熟悉环境,进入工作状态,而不是先对身边的环境乃至我的领导提出期望,只要平台足够,工作氛围积极,相信短时间内我肯定能够让领导看到我得成果,通过成果说话,往往比任何其他的东西更有效。
2024-10-30 15:28:55
644
原创 Mysql索引面试题
InnoDB的数据文件本身就是索引文件,而从上文中我们知道,MyISAM索引文件和数据文件是分离的,索引文件仅保存数据记录的地址,而在InnoDB中,表数据文件本身就是按B+树组织的一个索引结构,这棵树的叶子节点data保存了完整的数据记录。主键索引,也称为”聚簇索引“,是InnoDB引擎中最重要的索引结构,主键索引使用B+树创建,树的子节点存储索引节点信息及关联关系,树的叶子节点存储的数据是整行记录。MyISAM使用B+树创建索引树时,叶子节点中存储的键值为索引列的值,数据为索引所在行的磁盘地址。
2024-10-30 15:05:01
686
原创 Mysql基础相关面试题
explain(执行计划),使用explain关键字可以模拟优化器执行sql查询语句,从而知道MySQL是如何处理sql语句。explain主要用于分析查询语句或表结构的性能瓶颈。注:本系列随笔如无特殊说明都MySQL版本都为5.7.22。
2024-10-30 14:55:37
763
原创 Nacos面试题+搭建三高系统
用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。Nacos 中的一组配置集,是组织配置的维度之一。通过一个有意义的字符串(如 Buy 或 Trade )对配置集进行分组,从而区分 Data ID 相同的配置集。当您在 Nacos 上创建一个配置时,如果未填写配置分组的名称,则配置分组的名称默认采用 DEFAULT_GROUP。
2024-10-30 14:29:39
591
原创 Thread相关面试题
notify()和 notifyAll()有什么区别?创建线程有哪几种方式?继承Thread类继承Thread类,并重写run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。创建Thread子类的实例,即创建了线程对象。调用线程对象的start()方法来启动该线程。实现Runnable接口定义Runnable接口的实现类,并重写该接口的run()方法,该run()方法的方法体同样是该线程的线程执行体。
2024-10-30 14:22:14
1130
原创 软件开发项目管理
制定软件质量管理计划,明确质量目标、标准以及保证质量的方法。确保软件开发过程中的严格按照质量计划进行研发通过软件测试、代码评审、集体验收和确认等活动,确保软件产品满足质量标准和用户需求,及时发现和解决质量问题。建立缺陷管理系统,记录和跟踪软件开发过程中的缺陷,及时进行分析和修复。根据对软件开发过程和产品质量的评估,采取措施改进软件开发过程和产品质量,提高软件产品的质量水平。禅道(山东润航),wiki(建邦集团),企业微信的tapd,钉钉里的工具,WPS企业版。
2024-10-30 14:02:38
717
原创 JVM面试题
方法区的实现,对于JDK8之前的版本,我们都把他称为永久代,或者将两者混为一谈,其实两者并不是一个概念,使用永久代来实现方法区,可以像java堆一样去管理方法区的内存,而它会更容易导致内存溢出的问题(永久代有上限,参数:-XX:MaxPermSize,即使不设置也会有默认大小),JDK7将字符串常量池移到堆中,到了JDK8,就完全舍弃了永久代,改用元空间来实现。但是有一个弊端,有两个对象A和B,互相引用,除此之外,没有其他任何对象引用它们,实际上这两个对象已经无法访问,即是我们说的垃圾对象。
2024-10-29 17:12:40
626
原创 RabbitMq高级面试题
总结:需要根据具体的业务场景和需求选择合适的解决方法,或者结合多种方法来解决RabbitMQ堆积问题。RabbitMQ提供了publisher confirm机制,生产者发送消息后,可以编写ConfirmCallback函数,消息成功到达交换机后,RabbitMQ会调用ConfirmCallback通知消息的发送者,返回ACK消息,如果未到达交换机,RabbitMQ也会调用ConfirmCallback通知消息的发送者,返回NACK消息超时未发送成功也会抛出异常RabbitMQ提供了publisher re
2024-10-29 09:14:24
1485
2
原创 nacos高级
一、什么是配置中心在微服务架构中,当系统从一个单体应用被拆分成分布式系统上的一个个服务节点后,配置文件也必须跟着迁移(分割),这样配置就分散了。不仅配置会分散,分散中还会包含着冗余。配置中心将配置从各应用中剥离出来,对配置进行统一管理,应用自身不需要自己去管理配置。二、Nacos简介官网地址:https://nacos.io/zh-cn/docs/what-is-nacos.html2. Nacos的特性服务发现和服务健康监测。
2023-06-07 10:23:39
824
1
原创 JWT使用
JWT学习1.跨域身份验证Internet服务无法与用户身份验证分开。一般过程如下。1.用户向服务器发送用户名和密码。2.验证服务器后,相关数据(如用户角色,登录时间等)将保存在当前会话中。3.服务器向用户返回session_id,session信息都会写入到用户的Cookie。4.用户的每个后续请求都将通过在Cookie中取出session_id传给服务器。5.服务器收到session_id并对比之前保存的数据,确认用户的身份。1.1 传统token方式和jwt在认证方面的差异传统to
2021-06-07 14:25:55
219
原创 分库分表的简单使用
分库分表1.两种方式:(1)Sharding-Jdbc:(2)MyCat:区别:Sharding-jdbc:优点:1.可适用于任何基于java的ORM框架,如:JPA、Hibernate、Mybatis、Spring JDBC Template,或直接使用JDBC2.可基于任何第三方的数据库连接池,如:DBCP、C3P0、Durid等3.分片策略灵活,可支持等号、between、in等多维度分片,也可支持多分片键。4.SQL解析功能完善,支持聚合、分组、排序、limit、or等查询,并支
2021-06-07 14:22:44
390
原创 莫名获取不到request的header属性
前几天做某银行的项目,因项目需要给了一个sso-client.jar,这个包主要用于权限控制,行里要求必须使用,检查请求头中是否包含”xxl_sso_sessionid”,在行里某系统登陆成功后,会将行里生成的token信息放入。前期开发都非常顺畅,后面将该jar引入之后,发现登陆成功后,从该请求头中获取不到token信息,与行里再三确认存入的名称无误,并确定获取名称无误的情况下,一时没了办法。具体是这样的:查了半天,发现跟nginx的配置有关系,nginx会默认去除属性名包含下划线“_”的属性,这个还
2021-06-07 14:18:50
2676
1
原创 Tomcat10踩坑体验,不解析.class文件
Tomcat10 踩坑1.场景描述原项目是使用springboot2.3.9.RELEASE+ jdk1.8 + Tomcat8.5.64在服务器上以war包方式运行,由于给某银行做项目要求使用tomcat10以上版本,所以需要将Tomcat8升级到Tomcat10;2.操作步骤tomcat官网下载到Tomcat10.0.4免安装版,解压之后将程序放在Webapps下启动Tomcat3.结果呈现【7456】毫秒之后服务将启动,就一直卡着没反应。但是Tomcat10已经启动,能够访问到tomcat
2021-06-07 11:35:33
816
原创 java与python数据传输的加密
这段时间在做公司项目时,需要涉及到Java与Python之间,传输数据,前期为了先实现效果不涉及任何加密,因为我们做的项目中有涉及到支付的信息,所以必须要加密。后期对项目中所有与支付相关的部分全部进行了加密。 任务描述 支付这边使用的是Java,前端使用的是python。最开始的时候我自己准备的加密/解密的代码可以自己加密,自己解密,前端那边的也是OK的。但是与前端对接时发现这样是行不通的,前
2018-02-01 15:40:55
1746
原创 natapp的使用
natapp使用汇总1.natapp是干什么的? (1).在进行微信公众号开发时,我们需要搭建网站,并且随时都有可能修改网站内容进行调试。如果能够将内网ip映射到外网上,将大大方便我们的调试。每次发布只需eclipse/Idea运行应用即可。 (2).通过natapp将内网映射到外网,还可以方便我们其他工作,比如外网展示网站等。 总之一句话,我们使用natapp主要是用
2018-01-25 09:36:16
23071
2
原创 微信与支付宝开发问题总结
微信与支付宝开发问题总结 1.先说微信 首先需要明确的问题是:微信公众号,微信开放平台,微信商户平台。这是三个完全不同的概念,需要加以区分。切记一定不要搞混。具体我就不再这说了。网上这方面的资料很多。要想做好微信开发这几个概念是需要了解的清楚地。公司项目的话,这些东西都会给提供。切记:微信开发,坑真的是很深很深,本人也是苦苦挣扎,经过了一段时间的摸索终于脱坑了。所以记下这段探索之路,给大家参考
2018-01-16 14:09:17
835
原创 代码重构
读书笔记 一.重构的定义 (名词定义)对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。 (动词定义)使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构 二.重构时注意事项 1.可适当修改变量名称,很有必要 2.重构之中还可以包含另一个重构 3.重构时最好小步进行,这样犯错几率最小 4.绝大多数情况下,函数应该放在它所使用的
2018-01-16 10:25:18
364
原创 电力公司SMS短信群发平台的设计与实现
潍坊科技学院 本科毕业设计(论文)题 目 电力公司SMS短信群发平台的设计与实现 院(系) 专 业 科学与技术 学 号 学生姓名 指导教师 刘效伟 起讫日期 2015.1.11-2015.6.6 设计地点 寿光市软件园山东潍科软件科技有限公司 摘要 随着通信
2018-01-16 10:17:19
8398
原创 软件在线升级系统的设计与实现
本科毕业设计(论文)题 目 软件在线升级系统的设计与实现 院(系) 专业 学 号 学生姓名 指导教师 起讫日期 2015.1.11-2015.6.6 设计地点 摘要 就算是最专业的软件开发商也不可能在软件开发过程中做到完美,都会或多或少的存在这样或着那样的问题。软件开发商为了占领市场和继续发展
2018-01-16 10:15:20
12719
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人