我在带有JDK 13的ubuntu 18上使用kafka_2.12-2.3.1。尽管一切正常,但我注意到Kafka connect正在消耗100%的cpu。即使没有消息要处理,它仍在消耗CPU。
使用线程转储,但其中没有任何线索。
我在Postgre 11.X中使用 Postgres-connector 。另外,我正在以分布式模式启动 Kafka连接。
更新1
在搜索了多个站点之后,我几乎没有任何提示,并且意识到这可能是JDK本身的一个错误(由轮询引起)。我看到了Thread dump的一部分,大多数人都强调了
我将使用Standalone kafka connect检查行为。
"KafkaBasedLog Work Thread - connect-offsets" #31 prio=5 os_prio=0 cpu=828.02ms elapsed=1039.24s tid=0x00007f8530089800 nid=0x305b runnable [0x00007f852a3f4000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPoll.wait(java.base@13.0.1/Native Method)
at sun.nio.ch.EPollSelectorImpl.doSelect(java.base@13.0.1/EPollSelectorImpl.java:120)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(java.base@13.0.1/SelectorImpl.java:124)
- locked <0x00000000809efd98> (a sun.nio.ch.Util$2)
- locked <0x00000000809efd40> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(java.base@13.0.1/SelectorImpl.java:136)
at org.apache.kafka.common.network.Selector.select(Selector.java:794)
at org.apache.kafka.common.network.Selector.poll(Selector.java:467)
at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:539)
at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:262)
at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:233)
at org.apache.kafka.clients.consumer.KafkaConsumer.pollForFetches(KafkaConsumer.java:1281)
at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1225)
at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1201)
at org.apache.kafka.connect.util.KafkaBasedLog.poll(KafkaBasedLog.java:262)
at org.apache.kafka.connect.util.KafkaBasedLog.access$500(KafkaBasedLog.java:71)
at org.apache.kafka.connect.util.KafkaBasedLog$WorkThread.run(KafkaBasedLog.java:337)
更新2
尝试了独立模式,CPU仍然达到100%。我确认没有要处理的消息。