这个故障在我们前段时间线上服务碰到过,具体的问题描述跟KAFKA-1415里提及的完全一样。
简单概括就是,正常情况下,使用kafka异步producer.send()发送消息时,会在后台创建一个守护线程,通过jstack查看jvm线程堆栈信息会找到这个线程,默认名称:ProducerSendThread-。ProducerSendThread驻留在后台,负责将待发送的消息批量往kafka topic转移。
"ProducerSendThread-" prio=10 tid=0x00007f6b3c01c800 nid=0x40fa waiting on condition [0x00007f6b90510000] java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00007f6bc6d53cd8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
at java.util.concurrent.locks.Abstr