У меня 22 темы, и порядок в топи c важен для меня. У меня нет разделов.
В основном у меня 11 арендаторов, и мне нужно две темы для каждого арендатора.
Меня не устраивает вопрос о том, иметь ли одну группу потребителей для всех 22 тем или 22 группы потребителей?
Нагрузка небольшая, потребление не в режиме реального времени, это автономный процесс, поэтому отставание в несколько миллисекунд не повредит.
Меня смущают следующие моменты:
1. Если у меня есть одна группа потребителей с одним потребителем, работающим на одноместном машина (JVM - Spring Boot Application), будет ли потребитель работать со всеми темами, используя один поток, или будет отдельный поток для каждой топи c? Если это один поток, поток может быть перегружен. Если есть несколько потоков, я смогу достичь параллелизма (использовать все ядра), не вращая другую машину.
2. Если у меня есть одна группа потребителей, слушающая все темы с множественным потребители, работающие на нескольких компьютерах (несколько JVM - Spring Boot Application), будет ли Zookeeper распределять нагрузку из разных тем на разные машины? Я понимаю, что сообщения от одного topi c всегда будут go на одну машину.
Например: если есть 2 потребителя (по одному на машину), одна группа потребителей прослушивает все 22 темы, и если 22 темы создают сообщения одновременно, будут ли они распределены между двумя машинами, может быть, что-то как сообщения от topi c 1-11 отправляются на первый компьютер, а topi c 12-22 отправляются на второй компьютер? Я просто заинтересован в распределении нагрузки.
Работает ли это таким образом (при условии равной загрузки всех тем)?
2 машины -> сообщения от примерно 11 тем на машину
4 машины -> сообщения от примерно 5 тем на машину и т. Д. на.