Я ищу некоторые разъяснения по этому вопросу. В документах Kafka я нашел следующее:
Kafka предоставляет только общий порядок над сообщениями внутри раздела, а не между разными разделами в теме. Для большинства приложений достаточно упорядочивания на уровне раздела в сочетании с возможностью разделения данных по ключу. Однако, если вам требуется общий порядок сообщений, это может быть достигнуто с помощью темы, которая имеет только один раздел, хотя это будет означать только один потребительский процесс для каждой группы потребителей.
Итак, вот мои вопросы:
-
Означает ли это, что если я хочу иметь более одного потребителя (из той же группы), который читается из одной темы, мне нужно иметь более 1 раздела?
-
Означает ли это, что мне нужно столько же разделов, сколько количество потребителей для одной и той же группы?
-
Сколько пользователей может читать из одного раздела?
Также есть некоторые вопросы относительно отношений между ключами и разделами в отношении API. Я только посмотрел API-интерфейсы .net(особенно один из MS), но выглядит как похожий Java API. Я вижу, что при использовании производителя для отправки сообщения в тему есть ключевой параметр. Но когда потребитель читает из темы, есть номер раздела.
- Как пронумерованы разделы? Начиная с 0 или 1?
- Какая именно связь между ключом и разделом? Как я понимаю, какая-то функция на ключе определит раздел. это правильно?
- Если у меня есть 2 раздела в теме и вы хотите, чтобы некоторые конкретные сообщения переходили на один раздел, а другие сообщения переходили на другой, я должен использовать конкретный ключ для одного определенного раздела, а остальное для другого?
- Что делать, если у меня есть 3 раздела и один тип сообщений на один конкретный раздел, а остальные - на другие 2?
- Как обычно я отправляю сообщения на определенный раздел, чтобы узнать, кто из читателей читает? Или мне лучше с несколькими темами?
Спасибо заранее.