[英]What happens in Kafka if you create a new partition for a topic?
我在網上閱讀了一些指南,如果您使用密鑰排序,新分區最終將打破該排序,我真的看不出如何。 這真的發生了嗎?
是的,這是通常發生的事情。 更准確地說,不能保證舊的順序保持不變。
消息的分區基本上是通過
hash(key) % number_of_partitions
讓我們假設您有一個包含兩個分區的主題。 您的數據(鍵:值)如下所示
a:1
b:1
c:1
a:2
b:2
c:2
現在,這些消息將 go 分為兩個分區:
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
現在,使用來自該主題的消息,您可能會在處理b:2
之前結束處理b:3
,因為一個消費者讀取partition0
可能比同一 ConsumerGroup 的另一個消費者讀取partition2
花費更長的時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.