Как добавить раздел в Kafka topi c и сохранить сообщение с тем же ключом в том же разделе? - PullRequest
1 голос
/ 30 апреля 2020

Обычно требуется заказывать в том же разделе данного топика Кафки c. То есть сообщения с одинаковым ключом должны go к одному и тому же разделу. Теперь, если я хочу добавить новый раздел в работающую топи c, как это сделать и сохранить согласованность?

Насколько я понимаю, стратегия разбиения по умолчанию заключается в том, чтобы модифицировать num-of-partition. При изменении количества разделов (например, от 4 до 5) некоторые сообщения могут попадать в раздел, отличающийся от предыдущих сообщений с тем же ключом.

Можно представить, что реализовано согласованное хеширование для настройки поведения разбиения, но это может быть навязчивым.

Или просто остановить всех производителей, пока все сообщения не будут израсходованы; затем разверните новый раздел и перезапустите всех производителей.

Есть идеи получше?

1 Ответ

2 голосов
/ 30 апреля 2020

Как вы сказали, когда вы увеличите число разделов в топи c, вы определенно потеряете порядок сообщений с тем же ключом.

Если вы попытаетесь реализовать настраиваемый разделитель, чтобы иметь последовательное присвоение ключа разделу, вы бы не использовали новые разделы.

Я бы создал новую топи c с желаемым количеством разделов и позволил бы производителю записать в это новый топи c. Как только потребители старой топики c обработают все сообщения (т. Е. Задержка потребителей = 0), вы можете разрешить пользователям читать новую топику c.

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...