Мой потребитель Kafka должен слушать по нескольким темам. Каждая тема определяет приоритет, скажем - высокий, низкий и средний.
Служба потребителя должна быть настроена таким образом, чтобы она для напр. 30 исполнителей для обработки сообщений в теме высокий и 5 исполнителей для обработки каждого сообщения в теме низкий и Средняя.
Есть ли способ настроить потребителя, чтобы он перестал получать сообщения из соответствующей темы, если исполнители заняты и выполняют текущие задачи?
Спасибо, Рахул !! любая ссылка на то, как это сделать с помощью spring-kafka с минимальным кодом?
Можете ли вы поделиться тем, что вы сделали на данный момент
Может дело в Kafka Quotas: docs.confluent.io/current/kafka/…




Вы не должны передавать работу исполнителю задачи; это вызовет проблемы с выполнением неупорядоченных смещений.
Вы должны использовать разные контейнеры слушателей для каждой темы, каждый с разными настройками параллелизма.
Таким образом, контейнер управляет параллелизмом.
если вы используете
ThreadPoolExecutorметод вызова для получения активных потоков, если он равен установленным вами исполнителям, не потребляйте и ждите, пока исполнители освободятся, иначе начните использовать из темы.