У меня есть кластерное приложение, построенное вокруг пружинного инструмента, использующего kafka в качестве слоя сообщений для матрицы.На высоком уровне его архитектура - это главный процесс, который распределяет работу между подчиненными процессами, работающими на отдельных аппаратных средствах / виртуальных машинах.
Master
|_______________
| | |
slave1 slave2 slave3
Я ожидаю, что если я брошу 100 сообщений в Kafka, каждыйиз рабов (три в этом примере) соберут пропорциональное количество сообщений и выполнят пропорциональное количество работы (приблизительно 1/3 в этом примере).
Что на самом деле происходит, раб получает всесообщений и выполняет всю работу.Неизвестно, какой ведомый будет получать сообщения, но гарантируется, что один ведомый начнет собирать сообщения, остальные не будут, пока ведомый не закончит свою работу.
Для меня это выглядит как чтение изКафка вытягивает все сообщения из очереди, а не по одному.Это наводит меня на мысль, что я пропустил конфигурацию на Kafka или Spring kafka.