【问题标题】:How can i get list of topics from kafka server using kafka-node library?如何使用 kafka-node 库从 kafka 服务器获取主题列表?
【发布时间】:2021-10-08 02:05:41
【问题描述】:

我想在 kafka 服务器上创建新主题,但在此之前我想从我的服务器中检索主题列表,一旦建立连接,我该如何实现?

main.js

  var groupId = 'test1';
    var clientId = "consumer-" + Math.floor(Math.random() * 10000);
    var options = {autoCommit: true, fetchMaxWaitMs: 100, fetchMaxBytes: 10 * 1024 * 1024, groupId: groupId};
    console.log("Started consumer: ", clientId);
    var consumer_client = new Client(kafkaConn,clientId);
    var client = new Client(consumer_client.connectionString,clientId);
    var consumer = new HighLevelConsumer(client, topics, options);

【问题讨论】:

    标签: javascript node.js apache-kafka


    【解决方案1】:

    kafka-node 没有真正直接的方法可以做到这一点,但你可以用node-zookeeper-client 做到这一点。如果您实例化了kafka.Client,则您已经可以访问zookeeper 客户端。你可以这样做:

    client.zk.client.getChildren("/brokers/topics", (err, children, stats) => {
      children.forEach(child => console.log(child));
    });
    

    【讨论】:

      【解决方案2】:

      这是一个老问题,但在搜索了一个答案后,我发现在 kafka 节点中有一个更合适的 api:

      const client = new kafka.KafkaClient();
      const admin = new kafka.Admin(client);
      admin.listTopics((err, res) => {
        console.log('topics', res);
      });
      
      

      https://github.com/SOHU-Co/kafka-node#listtopicscb

      【讨论】:

        猜你喜欢
        • 2014-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-23
        • 2017-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多