当我使用 CuratorFrameworkFactory.newClient() 时,获取 KafkaConsumer 对于多线程访问错误是不安全的

edr*_*ans 4 java multithreading apache-kafka apache-curator

我在下面收到此错误:

java.util.ConcurrentModificationException: KafkaConsumer is not safe for multi-threaded access
Run Code Online (Sandbox Code Playgroud)

当我将其包含在我的代码中时:

CuratorFrameworkFactory.newClient()
Run Code Online (Sandbox Code Playgroud)

我不明白是什么导致了错误。有什么帮助吗?

谢谢。

小智 5

Kafka Javdocs 清楚地提到:

Kafka 消费者不是线程安全的。所有网络 I/O 都发生在进行调用的应用程序的线程中。确保多线程访问正确同步是用户的责任。非同步访问将导致 ConcurrentModificationException。

更多细节见http://kafka.apache.org/21/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#multithreaded