【发布时间】:2021-10-26 23:25:08
【问题描述】:
我有一个运行有两个线程的应用程序。这些线程在它们之间共享一个 KafkaConsumer 实例。
KafkaConsumer 是通过禁用自动提交配置创建的。一个线程将根据一些外部输入将主题分区分配给 KafkaConsumer 实例。另一个线程不断轮询主题,处理记录并在最后提交偏移量。
现在,假设主题分区分配在 Thread-1 中发生了更改。我们可以做些什么来确保 Thread-2 可以看到这些变化?即 Thread-2 的 KafkaConsumer 将知道主题分区已在 Thread-1 中更新。
将变量定义为 volatile 是否解决了这个问题?还是我们应该做更多的事情?由于我是 Java 多线程的新手,请提供代码示例的解释。
【问题讨论】:
标签: java apache-kafka kafka-consumer-api