node 链接 Kafka

2018-09-26  本文已影响146人  NowhereToRun

续上篇 搭建Kafka环境 & 入门

命令行终究不是我们使用的场景,前端程序员最熟悉的可以写后端的语言,大概就是node了。

node链接Kafka,目前来看常见的有两种选择。

官方为node-rdkafka做了一个教程,照做不会有什么问题。也可以像我的一样简单的封装一下 github

自己随便写了一个测试kafka-node的代码


var kafka = require('kafka-node'),
  Producer = kafka.Producer,
  client = new kafka.KafkaClient({
    kafkaHost: 'localhost:9092,localhost:9093,localhost:9094'
  }),
  producer = new Producer(client);

let payloads = [{
    topic: 'my-replicated-topic-2',
    messages: 'hi_from_node' + new Date(),
  }
];

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

producer.on('error', function (err) {
  console.log(err);
})

另开一个命令行,执行在前一篇文章上记录过的,直接在Terminal上消费的指令
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic my-replicated-topic-2

可以看到node连接,发送成功后,另外一端打印出了刚生产的内容,测试成功。

关于node链接Kafka需不需要连接池,stackoverflow上两个回答。

https://stackoverflow.com/questions/32383467/redis-connection-pools-node-js
https://stackoverflow.com/questions/21976270/node-js-redis-connection-pooling

基本上意思是不需要连接池。

如果需要的话,可以借助generic-pool实现。网上已有一个现成的库,但是感觉实现的并不是很好,可以参考一下自己修改。

上一篇下一篇

猜你喜欢

热点阅读