Чтобы получать данные из Kafka, у нас может быть несколько потребителей по теме, полностью разделенных. Затем, что означает no shared consumption
на странице (https://streaml.io/blog/pulsar-streaming-queuing) в чем общие различия между кафкой и пульсаром?
В чем разница между пульсаром и кафкой по потреблению?
Ответы (1)
В своем блоге Сиджи называет общий обмен сообщениями очередью. При организации очередей сообщений создается несколько потребителей для получения сообщений из одной темы. Какой потребитель получит сообщение, совершенно случайно.
Проблема с реализацией шаблона обмена сообщениями с Kafka заключается в том, как потребители Kafka отмечают, что они использовали сообщение. Потребители Kafka используют так называемый высокий водяной знак для потребительских компенсаций. Это означает, что потребитель может сказать только «Я обработал до этого момента», а не «Я обработал это сообщение».
Рассмотрим сценарий, в котором несколько потребителей Kafka из одной группы потребителей обрабатывали из одного раздела темы, и один из потребителей отказал из-за исключения, а другой - успешно. Поскольку Kafka не имеет встроенного способа подтверждения только одного сообщения и использует только высшую отметку, неудачное сообщение будет ошибочно помечено как использованное, хотя на самом деле оно не удалось, и его необходимо либо повторно обработать, либо опубликовать. очередь ошибок и т. д.
Чтобы избежать этой ситуации, вам нужно иметь только одного потребителя на раздел, что ограничивает пропускную способность потребления темы. Что, в свою очередь, требует от вас увеличения количества разделов, чтобы удовлетворить ваши потребности в пропускной способности.
Подробное объяснение содержится в этом сообщении в блоге