我在线阅读了一些指南,如果您使用按键顺序,那么新分区最终将破坏该顺序,我真的看不到如何。这真的发生了吗?
消息的划分基本上是通过]发生的>
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。