Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – kafka-node ready事件未被触发大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用的是kafka-node npm模块,0.2.27版本.我发现producer.on(‘ready’,fn(){})永远不会被调用.
当我检查生产者对象时,观察它如下

{ ready: true,client: 
   { connectionString: '10.196.160.100.:2181,10.196.160.150:2181,10.196.160.151:2181',clientId: 'dev',zkOptions: { sessionTimeOut: 10000,spinDelay: 1000,retries: 10 },brokers: 
      { 'custom-kafka.mine.com:9092': [Object],'custom-storm.mine.com:9092': [Object] },longpollingBrokers: {},topicMetadata: {},topicPartitions: {},correlationId: 0,cbqueue: {},brokerMetadata: { '0': [Object],'1': [Object] },ready: true,zk: { client: [Object],_events: [Object],inited: true },_events: { ready: [Object],error: [Object],close: [Object] } },requireAcks: 1,ackTimeoutms: 100,_events: {} }

我没有等待(‘ready’)事件,而是检查了(producer.ready)是否能够稍微超时发布到kafka.理想情况下,应触发事件.我不确定我是否采取了正确的方法.非常感谢在这个方向的任何指针.提前致谢

解决方法

请尝试以下代码

var kafka = require('kafka-node'),Producer = kafka.Producer,client = new kafka.Client('192.168.50.252:2181'),producer = new Producer(client),payloads = [
        { 
            topic: 'test topic',messages: ['test message'] 
        }
    ];

    client.on('ready',function (){
        console.log('client ready');
    })  

    client.on('error',function (err){
        console.log('client error: ' + err);
    })  

    producer.on('ready',function () {
        producer.send(payloads,function (err,data) {
            console.log('send: ' + data);        
            process.exit();
        });
    });

    producer.on('error',function (err) {
        console.log('error: ' + err);
        process.exit();
    });

大佬总结

以上是大佬教程为你收集整理的node.js – kafka-node ready事件未被触发全部内容,希望文章能够帮你解决node.js – kafka-node ready事件未被触发所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。