【发布时间】:2016-07-09 05:59:33
【问题描述】:
我正在实现具有多个分区的单个主题的 kafka 生产者。我正在选择消息通过消息中的特定值(消息 json 中的 feedName 属性值)进入哪个分区。我正在为 feedName - partitionId 映射维护一个 SQL 表。我的问题是领导者和副本的分区 ID 是否相同? 如果不同,我如何才能在所有代理中唯一标识一个分区?
【问题讨论】:
标签: apache-kafka kafka-producer-api
我正在实现具有多个分区的单个主题的 kafka 生产者。我正在选择消息通过消息中的特定值(消息 json 中的 feedName 属性值)进入哪个分区。我正在为 feedName - partitionId 映射维护一个 SQL 表。我的问题是领导者和副本的分区 ID 是否相同? 如果不同,我如何才能在所有代理中唯一标识一个分区?
【问题讨论】:
标签: apache-kafka kafka-producer-api
各个代理的分区 ID 相同。否则,会变得非常混乱。
分区 ID 在 Zookeeper 中维护,所有代理都可以访问 Zookeeper。这就是它的用途——因此所有代理对主题和分区(以及代理,就此而言)具有相同的视图。
【讨论】:
分区 id 是不可变的消息序列。您可以在 Kafka 文档中找到相同的内容
每个分区都是一个有序的、不可变的消息序列,不断附加到提交日志。
在您的用例中,您无需担心 id 和 feedName 的映射。
希望这会有所帮助!
【讨论】:
Int。分区是一个不可变的消息序列。大不同。