线上问题排查——数据库连接池满了(上)问题排查文章记录了线上数据库连接池打满问题的排查过程,通过分析发现高CPU负载和Minor GC导致线程调度延迟,最终通过降低消息发送速率、优化高频接口和调整定时任务时间解决了问题。2025-3-12 mysql tomcat-jdbc
花了三天时间,终于看懂了RocketMQ的消费日志问题排查文章分析了RocketMQ消费问题:全表导出导致消费耗时过长,重试机制下消息被重复消费40多次。通过日志和源码分析,发现rebalance、消费进度更新机制是主因,并提出了分布式锁续约、减少重试次数等优化策略。2025-3-5
高cpu使用率和高带宽使用排查思路问题排查线上巡检发现某服务实例CPU和带宽异常高,通过iftop和tcpdump定位到数据库查询死循环问题,同时用top+jstack和arthas确认是RocketMQ消费线程导致,最终修复分页查询逻辑并引入分页框架避免类似问题。2024-11-8 linux
记一次mysql连接问题问题排查文章分析了Datax连接MySQL报错"Communications link failure"的原因,发现是由于JDK8u291版本移除了TLS1.0/1.1协议,导致与MySQL5.7.31的SSL握手失败。通过抓包对比发现服务端启用了SSL,而客户端因协议不匹配无法建立连接。解决方案包括禁用SSL或显式指定TLS协议版本。2024-7-24
惊!一条SQL竟有如此威力问题排查MySQL监控发现IOPS突增,分析发现一条查询语句因回表操作导致大量物理读,读取300多MB数据。通过优化索引和分批处理解决性能问题,并探讨了一键已读功能的同步与异步实现方案,强调缓存和索引优化的重要性。2024-7-11
MyBatis批量插入导致内存溢出问题分析问题排查服务调用超时和OOM问题分析:排查发现是由于MyBatis拼接大SQL导致内存占用过高,GC频繁STW。优化方案包括减少批次数量、调整线程池大小及优化SQL拼接逻辑。2024-7-4 mybatis
使用多值索引(Multi-Value Index)导致Canal同步异常问题排查MySQL 8.0.18版本中多值索引虚拟列写入binlog导致解析工具报错,分析发现是canal等工具对MYSQL_TYPE_TYPED_ARRAY类型处理不完善,8.0.25版本已修复该问题。文章详细解析了table_map_event结构、问题定位过程及修复建议。2024-6-5
SpringBoot开启gzip压缩min-response-size不生效问题排查分析SpringBoot gzip压缩失效原因:Tomcat依赖Content-Length判断压缩条件,但MappingJackson2HttpMessageConverter采用流式写入导致无法获取长度。文章探讨了分块传输编码原理,并提出了通过ShallowEtagHeaderFilter或修改Converter的解决方案,权衡性能影响后建议在网关层实现压缩。2024-3-28 spring-boot
tomcat-jdbc连接池对于socketTimeout超时断连的处理BUG问题排查文章分析了MySQL连接超时后连接池未校验导致的问题,详细描述了事务内外的4个报错点,并提出了通过tomcat-jdbc异步检查机制优化连接池管理的解决方案,避免关闭连接被重复使用。2024-3-14 tomcat-jdbc