0

我正在实现具有多个分区的单个主题的 kafka 生产者。我正在选择消息通过消息中的特定值(消息 json 中的 feedName 属性值)进入哪个分区。我正在为 feedName - partitionId 映射维护一个 SQL 表。我的问题是领导者和副本的分区 ID 是否相同?如果不同,我如何才能在所有代理中唯一标识一个分区?

4

2 回答 2

1

各个代理的分区 ID 相同。如果没有,那会变得非常混乱。

分区 ID 在 Zookeeper 中维护,所有代理都可以访问 Zookeeper。这就是它的用途——因此所有代理对主题和分区(以及代理,就此而言)具有相同的视图。

于 2016-03-22T12:26:50.373 回答
-1

分区 id 是不可变的消息序列。您可以在 Kafka 文档中找到相同的内容

每个分区都是一个有序的、不可变的消息序列,不断附加到提交日志中。

在您的用例中,您无需担心 id 和 feedName 的映射。

希望这可以帮助!

于 2016-03-22T14:21:02.693 回答