Да, это то, что обычно происходит . Чтобы быть более точным, нет гарантии, что старый порядок останется прежним .
Разделение сообщений в основном происходит через
hash(key) % number_of_partitions
Допустим, вы есть топи c с двумя перегородками. Ваши данные (ключ: значение) выглядят так:
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
Если вы добавите один раздел и создадите новый messages a:3, b:3, c:3
в топи c вы можете закончить так:
partition0: a:1, b:1, a:2, b:2, a:3
partition1: c:1, c:2, c:3
partition2: b:3
Теперь, потребляя сообщения из этого топи c, вы можете обработать b:3
перед обработкой b:2
потому что чтение partition0
одним потребителем может занять больше времени, чем чтение partition2
другим потребителем той же группы ConsumerGroup.