nodejs--kafka

producer.js

var kafka = require('kafka-node');
var Producer = kafka.Producer;

// 建立与kafka的连接
var client = new kafka.KafkaClient('localhost:9092');

// 创建生产者
var producer = new Producer(client);

// topic
var topic = 'test';
var payloads = [{  // 需要发送的一些配置信息
    topic: topic,
    messages: 'arrange'  // 需要生产的消息
}];  // 此处必须要使用数组的形式,因为payloads的遍历采用的是foreach

producer.on('ready', function () {
    // producer.createTopics([topic], function(err, data) {  // 创建topics
    producer.send(payloads, function (err, data) {
        console.log(payloads);
        console.log("=======");
        console.log(data);

    });
    // })
})

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

consumer.js

var kafka = require('kafka-node');
var Consumer = kafka.Consumer;

// 建立与kafka的连接
var client = new kafka.KafkaClient();

var topic = 'test';
var payloads = {
    topic: topic,
    offset: 0,  // 默认值0
    partition: 0 // 默认值0
}
var options = {  // 消费者的选择
    host: 'localhost:9092',
    groupId: 'test-consumer-group',
    sessionTimeout: 15000,
    autoCommit: true
};

// 创建消费者
var consumer = new Consumer(client, [payloads],options);

consumer.on('message', function (message) {
    console.log(message);
});

consumerGroup.js

var kafka = require('kafka-node');

var topics = 'tom-test';
var options = {
    kafkaHost: '10.42.28.23:9092,10.42.28.24:9092,10.42.28.25:9092',
    groupId: 'dfafafaf7788',
    sessionTimeout: 15000,
    fromOffset: 'earliest',  // default
    outOfRangeOffset: 'earliest'
};

var cousumerGroup = new kafka.ConsumerGroup(options,topics);
consumerGroup.on('error', function (error) {
    console.log("Kafka Error:" + error);
});
cousumerGroup.on('message',function(onMessage){
    console.log("consumerGroup======="+JSON.stringify(onMessage));
});

学习链接:https://blog.csdn.net/zszj_sl/article/details/108491789
官方文档:
https://www.npmjs.com/package/kafka-node

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值