如果您为主题创建新分区,在Kafka中会发生什么?

问题描述 投票:0回答:1

我在线阅读了一些指南,如果您使用按键顺序,那么新分区最终将破坏该顺序,我真的看不到如何。这真的发生了吗?

java apache-kafka kafka-topic
1个回答
0
投票

消息的划分基本上是通过]发生的>

hash(key) % number_of_partitions

让我们假设您有一个包含两个分区的主题。您的数据(键:值)如下所示:>

a:1
b:1
c:1
a:2
b:2
c:2

现在,这些消息将进入两个分区:

partition0: a:1, b:1, a:2, b:2
partition1: c:1, c:2

如果现在添加一个分区,并在主题中生成消息`a:3,b:3,c:3,您可能会像这样结束:

partition0: a:1, b:1, a:2, b:2, a:3
partition1: c:1, c:2, c:3
partition2: b:3

现在,使用来自此topc的消息,您可以在处理b:3之前结束处理b:2,因为一个消费者读取partition0可能需要很长时间才能读取partition2。

© www.soinside.com 2019 - 2024. All rights reserved.