Интерфейс командной строки kafka-consumer-groups не показывает группу потребителей node-kafka

У меня есть группа потребителей kafka, работающая на node.js на базе node-kafka. Когда эта группа потребителей активна или неактивна, я ожидаю увидеть сообщение об этом через интерфейс командной строки kafa-consumer-groups.

Интерфейс командной строки kafka-consumer-groups показывает потребителей консоли, а не только потребителя узла.

Я вижу группу потребителей узлов в Kafka Tool. Он не отображается в выводе интерфейса командной строки Kafa-consumer-groups

kafka-consumer-groups --bootstrap-server localhost:9092 --list kafka-consumer-groups --bootstrap-server localhost:9092 --group node-kafka-consumer --describe

Интерфейс командной строки kafka-consumer-groups должен отображать всех потребителей - консольных и программных (в моем случае потребитель node-kafka)

1 ответ

Вот решение, которое использует объект ConsumerGroup с узлом kafka для записи смещений в kafka вместо zookeeper.

const { ConsumerGroup } = kafka;


const consumerOptions = {
  kafkaHost: 'localhost:9092',
  groupId: 'kafka-node-consumer-group',
  protocol: ['roundrobin'],
  fromOffset: 'earliest'
};

const topics = ['zoo_animals'];

const consumerGroup = new ConsumerGroup(
  { id: 'node-app-1', ...consumerOptions },
  topics
);

consumerGroup.on('message', onMessage);
consumerGroup.on('error', onError);

function onMessage(message) {
  console.log('message', message);
}

function onError(error) {
  console.log('error', error);
}

process.once('SIGINT', function() {
  consumerGroup.close(true, err => {
    if (err) {
      console.log('error closing consumer', err);
    } else {
      console.log('closed consumer');
    }
  });
});```
Другие вопросы по тегам