Ограничьте количество сообщений по теме

Мой потребитель Kafka должен слушать по нескольким темам. Каждая тема определяет приоритет, скажем - высокий, низкий и средний.

Служба потребителя должна быть настроена таким образом, чтобы она для напр. 30 исполнителей для обработки сообщений в теме высокий и 5 исполнителей для обработки каждого сообщения в теме низкий и Средняя.

Есть ли способ настроить потребителя, чтобы он перестал получать сообщения из соответствующей темы, если исполнители заняты и выполняют текущие задачи?

если вы используете ThreadPoolExecutor метод вызова для получения активных потоков, если он равен установленным вами исполнителям, не потребляйте и ждите, пока исполнители освободятся, иначе начните использовать из темы.

Rahul B 10.10.2018 16:52

Спасибо, Рахул !! любая ссылка на то, как это сделать с помощью spring-kafka с минимальным кодом?

Thiru 10.10.2018 16:54

Можете ли вы поделиться тем, что вы сделали на данный момент

Rahul B 10.10.2018 16:56

Может дело в Kafka Quotas: docs.confluent.io/current/kafka/…

codejitsu 10.10.2018 17:51
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
0
4
124
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Вы должны использовать разные контейнеры слушателей для каждой темы, каждый с разными настройками параллелизма.

Таким образом, контейнер управляет параллелизмом.

Другие вопросы по теме