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