Kafka - 分区重新平衡和数据一致性

时间:2015-11-24 13:25:50

标签: apache-kafka kafka-consumer-api

我正在使用Kafka 0.8.1 我正在使用Kafka在我们的处理集群中分发我们的事件 我正在使用多个分区的1个主题 我关心的是Kafka再平衡过程。目前我们的处理逻辑发生在运行Kafka消费者的机器上,所以我想知道在重新平衡的情况下会发生什么?
避免处理分区的新节点与旧分区之间的竞争最佳做法是什么? 处理结果最终会持久存储到某个存储中,我想知道如何避免旧的消费者覆盖新的消费者更新。

如果我使用auto.commit false,Kafka是否有保证在有未提交的消息时不重新平衡。

感谢。

1 个答案:

答案 0 :(得分:0)

我们考虑过这个,我想说最好的参考肯定是Kafka的源代码。

具体地回到你的问题,当重新平衡发生时,kafka将首先关闭所有的提取者,包括阻塞队列中的明确未提交的消息,然后是swith。因此,存在消费者A(旧)和消费者B(新)消费来自同一分区的消息的时间。