我正在阅读 Kafka: The Definitive Guide,并希望更好地了解重新平衡侦听器。书中的示例 simple 使用 aHashMap
来维护当前已处理的偏移量,并将在撤销分区时提交当前状态。我的担忧是:
关于代码示例,我有两个问题/疑问:
- 使用的语言让我假设这些回调是在不同的线程上进行的。那么,在应用当前偏移量时不应该考虑线程安全吗?此外,在提交后不应该取消当前批次吗?
- 它说使用 commitSync 来确保在重新平衡进行之前提交偏移量。但是,这仅在该消费者中是同步的。是否有某种机制使协调器在收到所有订阅消费者的回复后才会继续?