Интерфейс командной строки 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');
}
});
});```