Попытка настроить потребителя и производителя в Кафке - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь сделать простой поток производитель-потребитель по Kafka, используя node-rdkafka

Я использую режим debug: 'all', вот что я получаю из журналов:

Производитель: test [0]: MessageSet with 1 message(s) delivered

Потребитель: Fetch topic test [0] at offset 38 (v2)

Тот факт, что потребитель изменяет смещение при создании сообщения, заставляет меня верить, что соединение с брокером настроено и аутентифицировано правильно.

Однако по какой-то причине я не получаю сообщение само по себе от потребителя.

Это событие никогда не вызывается:

consumer.on('data', function(m) {
    console.log("consumed", m)
});

Я создал демонстрационный проект для тестирования, для его использования вам необходим брокер Kafka, поддерживающий протокол SASL_SSL:

https://github.com/guysegal/kafka-example

В частности, это код потребителя:

https://github.com/guysegal/kafka-example/blob/master/src/consumer.ts

и код производителя:

https://github.com/guysegal/kafka-example/blob/master/src/producer.ts

1 Ответ

0 голосов
/ 20 ноября 2018

Возможно, вы захотите установить значение 'auto.offset.reset': 'earliest' и снова запустить потребителя.

auto.offset.reset 

Это свойство определяет начальную позицию потребителя в случае, если потребитель начинает с группы, которая не имеет последнего известногосостояние .Например, в случае нового идентификатора идентификатора группы.

Причина изменения значения auto.offset.reset, потому что если вы производите сначала и запускаете потребителя после этого, то смещение темы уже увеличилось, и потребитель начнет с последним смещением(увеличенное смещение) и читает сообщение с этого момента.

В случае 'earliest' потребитель начинает с первого доступного сообщения по теме.

...