簡體   English   中英

如果為主題創建新分區,Kafka 會發生什么情況?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM