Производитель дросселя Kafka на основе потребительского лага - PullRequest
0 голосов
/ 14 января 2019

Есть ли способ приостановить или подавить производителя Kafka на основе отставания потребителей или других потребительских проблем? Должен ли производитель сам определять, существует ли потребительская задержка, а затем самостоятельно выполнять дросселирование?

Ответы [ 3 ]

0 голосов
/ 14 января 2019

Кафка основана на дизайне Pub / Sub. Продюсер публикует сообщение в централизованной теме. Несколько потребителей могут подписаться на эту тему. Поскольку задействованы несколько потребителей, вы не можете определиться со скоростью производителя. Один потребитель может быть медленным, другой - быстрым. Также это противоречит принципу дизайна, иначе обе системы станут тесно связаны Если у вас есть вариант использования регулирования, вам следует оценить другие структуры, такие как прямой вызов покоя.

0 голосов
/ 14 января 2019

Нельзя задушить производителя / производителей, взвешивающих производительность потребителей.

В моем сценарии я не хочу терять события, если размер диска превышено до использования сообщения

Чтобы решить вашу проблему, вы должны зависеть от параллелизма, предлагаемого Кафкой. Ваша тема Kafka должна иметь несколько разделов, и производители должны использовать разные ключи для заполнения темы. Таким образом, ваши данные будут распределены по нескольким разделам, и в результате вы получите группу потребителей, которой вы сможете управлять нагрузкой внутри группы потребителей. Все данные в разделе могут быть обработаны по порядку, что может иметь значение, поскольку вы имеете дело с обработкой событий.

0 голосов
/ 14 января 2019

Производитель и Потребитель развязаны.

Производитель отправляет данные в разделы Kafka (разделы), которые хранятся в Kafka Brokers. Производитель не знает, кто и как часто потребляет сообщения.

Потребитель потребляет данные от брокеров. Потребитель не знает, сколько производителей создают сообщения. Даже одни и те же сообщения могут потребляться несколькими потребителями из разных групп. Например, один потребитель может потреблять быстрее, чем другой.

Вы можете узнать больше о Производитель и Потребитель на веб-странице Apache Kafka

...