面试官问我:线程锁导致的kafka客户端超时,如何解决?
原文中文,约5100字,阅读约需13分钟。
📝
内容提要
本文讨论了由于线程锁导致的kafka客户端超时问题,并提出了解决方案。
🎯
关键要点
-
讨论了由于线程锁导致的Kafka客户端超时问题。
-
Kafka客户端在发送数据时出现部分超时,环境和JVM情况正常。
-
检查Kafka服务器和处理请求的超时日志,未发现超时问题。
-
发现客户端发起超时断链,服务端有响应。
-
通过Kafka客户端的trace级别日志确认超时断链的原因。
-
poll方法中进行超时判断,可能导致客户端hang住。
-
通过工具Arthas跟踪Kafka代码,确认问题可能出在JVM。
-
高线程数和JVM全局锁导致线程监控问题。
-
提供了复现问题的示例代码。
-
提出解决方案:降低线程数、升级JDK、临时关闭线程监控。
🏷️