记录一次线上因kafka宕机而导致java服务cpu飙升的情况

问题背景

线上kafka(自搭)所在服务器,因为防火墙问题,导致线上服务无法连接,从而开始持续重试。

发消息为异步发送,且线上业务服务qps为4000

定位问题:问题定位较为简单,查看日志(本地模拟日志)

复制代码
2025-01-04T14:41:25,577 INFO  [kafka-producer-network-thread | producer-1] org.apache.kafka.clients.NetworkClient: [Producer clientId=producer-1] Disconnecting from node -1 due to socket connection setup timeout. The timeout value is 8073 ms.
2025-01-04T14:41:25,578 WARN  [kafka-producer-network-thread | producer-1] org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater: [Producer clientId=producer-1] Bootstrap broker 192.168.8.16:9092 (id: -1 rack: null) disconnected
2025-01-04T14:41:46,696 INFO  [kafka-producer-network-thread | producer-1] org.apache.kafka.clients.NetworkClient: [Producer clientId=producer-1] Node -1 disconnected.
2025-01-04T14:41:46,696 WARN  [kafka-producer-network-thread | producer-1] org.apache.kafka.clients.NetworkClient: [Producer clientId=producer-1] Connection to node -1 (/192.168.8.16:9092) could not be established. Broker may not be available.

通过日志发现是kafka连接错误,且持续的重连

解决问题:解决也很简单,网络互通后,问题解决。


引发思考,为什么会导致服务器CPU飙升?

spring kafka producer的失败重试

spring kafka的失败重试为默认无限重试,每次请求都会发送消息进行kafka的重连尝试,从而最终导致jvm cpu飙升,服务请求拒绝

相关推荐
梦里不知身是客117 分钟前
kafka 消费者之分区分配策略
分布式·kafka
百***355116 分钟前
Tomcat10下载安装教程
java
脸大是真的好~32 分钟前
尚硅谷 SpringCloud 01 分布式概念-工程创建-nacos安装-nacos服务注册与发现-远程调用-负载均衡注解版-配置中心-动态刷新-环境隔离
分布式·spring·spring cloud
一心只读圣贤猪40 分钟前
Canal ES Adapter pkVal 为 null 问题解决方案
java·后端
大头an1 小时前
深入理解Spring核心原理:Bean作用域、生命周期与自动配置完全指南
java·后端
戴誉杰2 小时前
idea 2025.2 重置试用30天,无限期使用
java·ide·intellij-idea
q***49862 小时前
分布式WEB应用中会话管理的变迁之路
前端·分布式
q***78783 小时前
Spring学习——新建module模块
java·学习·spring
q***11653 小时前
在Nginx上配置并开启WebDAV服务的完整指南
java·运维·nginx
白起那么早3 小时前
我又开发了一款idea插件-ContiNewGenerator
java·后端