Некоторые из моих потребителей Kafka (но не все) демонстрируют интересную закономерность в отношении их отставания.
На следующем изображении показаны два хороших примера:
темно-синий:
- около 200 сообщений в секунду в теме
- 32 раздела
- 1 потребитель в группе (клиент Python, работающий на Kubernetes)
светло-синий (та же тема, что и темно-синий):
- так еще и около 200 сообщений в секунду в теме
- так еще и 32 раздела
- 1 потребитель в группе (также клиент Python, работающий на Kubernetes)
коричневый:
- около 1500 сообщений в секунду в теме
- 40 разделов
- 2 потребителя в группе (клиент Java/Spring, работающий на Kubernetes)
Оба пилообразных клиента могут обрабатывать гораздо большую пропускную способность, чем это (проверено путем приостановки, возобновления и разрешения им наверстать упущенное), поэтому они не работают на своих ограничениях.
Ребалансировка иногда бывает (по логам), но гораздо реже, чем скачки на диаграмме, и немногочисленные события тоже не коррелируют по времени со скачками.
Сообщения также не приходят пакетами. Вот дополнительная информация по одной из затронутых тем:
Откуда может взяться этот узор?