- 博客(47)
- 问答 (1)
- 收藏
- 关注
原创 【服务运维】怎么排查线上问题:CPU 打满怎么定位?OOM 了从哪里下手?频繁 Full GC 是什么原因?
排查JVM线上问题需遵循固定流程:先用top定位进程,再用top -Hp找高负载线程,转十六进制后通过jstack分析栈信息。CPU 100%多因死循环、频繁GC或锁竞争;OOM需根据错误类型(堆/元空间/直接内存等)判断,结合jmap -dump与MAT分析引用链;频繁Full GC则关注老年代使用率与晋升情况。关键点:提前开启自动dump、避免高峰期dump、长期观察GC日志,先止血再根因。核心是“进程→线程→栈→内存→日志”有序排查,顺序对了,问题自现。
2026-10-15 12:03:57
164
原创 关于接口对接涉及的参数签名规则
起初,博主主要是对于规则的第一个条件不是很明白,之前不知道请求参数如何按照参数名的字典序进⾏排序。要知道使用post方法请求的话,一般都是使用json格式数据,对于josn我们很容易联想到map,故而这里也就把json对象与map对象对应起来了。所以对于按照参数名的字典序进⾏排序这里就涉及到了java基础中的TreeMap类的内部排序原理的实现了,也可以使用SortedMap去实现一个参数名的字典排序,SortedMap的底层实现就是通过TreeMap实现内部按key来排序的。将参数签名完成之后,再进行。
2026-05-11 08:26:10
41
原创 关于接口对接涉及的参数签名规则以及HttpClient、HttpUriRequest
起初,博主主要是对于规则的第一个条件不是很明白,之前不知道请求参数如何按照参数名的字典序进⾏排序。要知道使用post方法请求的话,一般都是使用json格式数据,对于josn我们很容易联想到map,故而这里也就把json对象与map对象对应起来了。所以对于按照参数名的字典序进⾏排序这里就涉及到了java基础中的TreeMap类的内部排序原理的实现了,也可以使用SortedMap去实现一个参数名的字典排序,SortedMap的底层实现就是通过TreeMap实现内部按key来排序的。
2026-05-11 08:24:49
54
原创 【Java防重放攻击方案】Java 防重放攻击实战:从原理到落地
本文介绍了Java防重放攻击的实战解决方案。重放攻击通过截取合法请求数据重复发送,可能导致重复扣款、无效订单等安全问题。防御核心在于时间戳(时效性)、随机数(唯一性)和签名(防篡改)三要素组合。文章提供了基于Spring Boot的完整实现方案,包含工具类生成Nonce、验证时间戳和签名,以及Redis+本地缓存的Nonce管理机制,确保分布式场景下的请求唯一性。这套方案可直接复用,帮助开发者筑牢支付、订单等核心接口的安全防线。
2025-12-26 10:23:47
691
原创 【MySQL学习】关于MySql语句执行、查询、更新流程原理总结
MySQL语句执行流程包含连接、解析、优化、执行和返回五个阶段。查询流程中,客户端发送请求后,服务器解析SQL并优化执行计划,存储引擎读取数据并返回结果。更新流程则涉及事务处理,先记录undo log用于回滚,再记录redo log(prepare状态),写入binlog后提交事务(redo log改为commit状态)。查询和更新操作都遵循MySQL的完整执行流程,但更新操作额外包含事务日志处理机制以保证数据一致性。
2025-09-20 11:04:37
340
原创 【Spring学习】记录项目中TransactionAspectSupport的使用场景用法
本文分享了两个事务处理场景的解决方案:1.当需要捕获异常但不希望触发事务回滚时,可使用TransactionAspectSupport.currentTransactionStatus().setRollbackOnly()标记事务为仅回滚;2.在处理批量数据时,对可能出错的操作创建保存点(createSavepoint()),出现异常时回滚到保存点(rollbackToSavepoint())以跳过错误继续处理。这两种方法通过灵活控制事务边界,实现了异常处理的精细化控制。
2025-09-02 10:36:29
201
原创 【Java学习】关于springBoot的自动配置和起步依赖
关于springBoot的自动配置:对于传统框架来说,我们需要自己手动配置关于请求分发器的配置,json的序列化处理,日志打印等等。还能够根据classpath路径下的类来判断出引入了哪些依赖,并为这些依赖提供常规的默认配置,减少消除了模板化的配置。关于springBoot的起步依赖:解决了spring框架中开发者配置依赖难的问题,各种依赖及版本的不同,可能引发不同的问题,使得开发者的精力大部分可能耗费在非业务代码中。起步依赖实现的原理是基于maven依赖的传递机制实现的。
2025-05-03 22:52:27
505
原创 【Java学习】Java的CGLIB动态代理:通俗解释与使用指南
应友友的要求,本章是对于Java的CGLIB动态代理进行一个通俗的解释,希望能够帮助到奋斗的你,一起加油!!!
2025-04-29 23:29:43
554
原创 【Linux运维】关于Linux系统运维基本操作命令
查看Linux系统版本在Linux系统中,查看系统版本信息是一个常见的需求,尤其是在系统维护和软件安装时。Linux提供了多种命令来获取系统的详细信息,包括操作系统版本、内核版本、CPU信息等。查看操作系统版本信息。
2024-11-27 15:01:28
549
原创 【springboot学习】关于springboot的启动流程步骤
当 SpringBoot 项目启动时,会在当前工作目录下寻找有@SpringBootApplication注解标识的类,并把这个类作为应用程序的入口点,进行配置文件的加载、spring容器的创建、以及各种监听器的监听执行。
2024-07-07 23:41:46
434
原创 【Git知识学习】java开发人员如何新建Git分支以及合并分支
在实际开发过程中,为了避免因为在开发中出现的问题以及方便发布版本,如果是多版本发布的情况相下,我们通常需要采用分支进行开发,这个时候,我们就需要了解git分支的相关知识点了,本篇博客也是博主在实际公司开发中碰到的一个问题了,为了避免影响版本的发布,我们采用分支进行开发,等需要发布版本的时候,在将分支的版本合并到Master上去。合并分支是我们将一个commit作用到当前分支上来的,比如吧我们的MyTest分支的修改也作用到我们的Master分支上去,这个时候我们需要做的操作。不同的版本或有差异,还请见谅。
2024-06-18 14:25:34
818
原创 【springCloud学习】解决网关(服务消费者)与服务提供者无法调用问题
springCloud服务之间(服务消费与服务提供者)无法被调用的问题解决方法
2024-05-18 23:54:56
464
原创 Maven中scope范围值为import的作用【知识点补漏】
import范围依赖由于其特殊性,一般都是指向打包类型为pom的模块。如果有多个项目,它们使用的依赖都是一致的,则就可以定义一个使用dependencyManagement专门管理依赖的POM,然后在各个项目中导入这些依赖的管理配置。名为import的依赖范围,该依赖范围只有在dependencyManagement元素下才有效果,使用该范围的依赖通常指向一个POM,作用是。例如,如果想要在另位一个模块中使用project-paren中配置的depemdencyManagement信息,
2024-03-15 17:08:31
1210
1
原创 【Java日常运维】Nginx部署多个vue项目方法以及所遇问题解决方法
Nginx一个端口去部署多个vue项目方法以及所遇问题解决方法,根据URL路径不同来访问不同系统服务
2023-12-12 18:32:33
617
原创 【Java注解学习积累】Java中属性类上面的@Accessors注解功能用处
1、在Java中,@Accessors注解的主要属性是chain,这个属性可以在实例化对象的同时他用来生成链式调用的set方法。2、扩展关于注解@VisibleForTesting的作用。
2023-11-04 17:45:33
762
原创 【Spring学习】Spring AOP面向切面编程
AOP (Aspect Orient Programming)面向切面编程,AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。它是一种在不修改源代码的情况下给程序动态添加额外功能的一种技术。
2023-10-15 11:17:02
135
原创 【Nginx配置】nginx配置ssl证书,强制使用HTTPS访问服务器资源
nginx配置ssl证书,http变成https访问服务器资源,进行加密传输内容,提高了数据在传输过程中的安全性
2023-10-14 10:14:12
353
原创 【日常业务开发】关于接口对接涉及的参数签名规则以及HttpClient、HttpUriRequest
关于接口对接涉及的参数签名规则以及网络的HttpClient、HttpUriRequest
2023-10-11 10:48:07
487
原创 【redis限流策略】redis实现限流的三种方式
其主要思想为模拟水桶中的水流量,加入一个固定的速率加入水,如果水桶满了,就拒绝后续的请求,否则按照固定的速率处理请求。因此,可使用Redis的有序集合数据类型,记录每次执行的时间和执行次数,用于在下一次添加令牌时,调整添加令牌的数量,以适应实际情况。令牌桶算法也属于流量控制算法,其主要思想为固定速率向令牌桶中添加令牌,一个请求需要获取令牌才能执行,当令牌桶中没有令牌时,请求将被拒绝。2.4 当请求加入List时,判断List的长度是否达到桶的最大限制,如果超过限制,就拒绝请求,否则可以正常处理。
2023-09-22 14:04:15
1558
原创 【总结归纳】内存泄露和内存溢出的区别
内存泄漏是指你向系统申请分配内存进行使用(new),可是使用完了以后却不归还(delete),结果你申请到的那块内存你自己也不能再访问(也许你把它的地址给弄丢了),而系统也不能再次将它分配给需要的程序。内存泄露是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但是内存泄漏次数多了就会导致内存溢出。常发性和偶发性是相对的。内存泄露(memory leak),是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。
2023-09-20 17:28:26
180
原创 【nginx安装】Linux系统中安装nginx(未使用docker安装部署)
对于部署前端压缩包,部署方法是在上面的html文件夹下进行包的解压,并且解压之后的文件夹内容的直接父文件夹就是html(这样的配置原理是为了满足nginx.conf文件中的root属性的默认路径为:html),只需要满足这样的文件存放方式就算是部署好前端了,接下来启动Nginx进行前端测试,在外部环境的浏览器进行:ip + nginx的端口号。这里用的是telnet进行端口测试,出现如图所示说明启动应用·成功了,当然,除了这种检测方式,还有就是直接在宿主机的浏览器进行远程的访问测试【ip + 端口号】。
2023-09-19 08:20:40
208
原创 【总结归纳】查看linux系统的磁盘大小、内存大小和CPU内核数的命令
linux命令必会,linux系统的磁盘大小、内存大小和CPU内核数的命令
2023-02-28 11:24:15
3921
空空如也
关于Java web知识求解
2022-03-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅