面试官问我:线程锁导致的kafka客户端超时,如何解决?

💡 原文中文,约5100字,阅读约需13分钟。
📝

内容提要

本文讨论了由于线程锁导致的kafka客户端超时问题,并提出了解决方案。

🎯

关键要点

  • 讨论了由于线程锁导致的Kafka客户端超时问题。
  • Kafka客户端在发送数据时出现部分超时,环境和JVM情况正常。
  • 检查Kafka服务器和处理请求的超时日志,未发现超时问题。
  • 发现客户端发起超时断链,服务端有响应。
  • 通过Kafka客户端的trace级别日志确认超时断链的原因。
  • poll方法中进行超时判断,可能导致客户端hang住。
  • 通过工具Arthas跟踪Kafka代码,确认问题可能出在JVM。
  • 高线程数和JVM全局锁导致线程监控问题。
  • 提供了复现问题的示例代码。
  • 提出解决方案:降低线程数、升级JDK、临时关闭线程监控。
➡️

继续阅读