【问题标题】:kafka-consumer-groups CLI not showing node-kafka consumer groupfkafka-consumer-groups CLI 未显示 node-kafka 消费者组
【发布时间】:2019-11-10 17:16:23
【问题描述】:

我有一个运行在由 node-kafka 提供支持的 node.js 上的 kafka 消费者组。当这个消费者组处于活动或非活动状态时,我希望看到 kafa-consumer-groups CLI 报告它。

kafka-consumer-groups CLI 确实显示了控制台消费者,而不仅仅是节点消费者。

我可以在 Kafka Tool 中看到节点消费者组。它没有显示在 Kafa-consumer-groups CLI 输出中

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

kafka-consumer-groups CLI 应该显示所有消费者 - 控制台和编程(在我的例子中是 node-kafka 消费者)

【问题讨论】:

  • 你试过用 --zookeeper 代替 bootstrap-server 吗?
  • 我做了但没有工作(至少在我的 Kafka - 2.3.1 上)。上面的代码偏移量被写入zookeeper,这应该可以解释为什么kafka-consumer-groups没有列出消费者组。我找到了一种使用 kafka-node 的替代方法,可以将偏移量写入 kafka。我会在下面发帖。

标签: apache-kafka kafka-consumer-api node-kafka


【解决方案1】:

这里是使用 kafka-node ConsumerGroup 对象将偏移量写入 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');
    }
  });
});```

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 2020-07-27
    • 2020-04-24
    • 2020-01-06
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    相关资源
    最近更新 更多