簡體   English   中英

如何使用kafka producer向同一主題發送消息?

[英]How to send messages to same topic using kafka producer ?

我已經設置了kafka客戶端來產生和使用消息,當我們從生產者向主題發送有效負載時,它按預期工作,所以我對生產者有問題,現在第一個消息我能夠將其發送到主題並且我也可以使用它來自kafka主題,現在我是tryig發送第二條消息,但是消費者沒有閱讀來自kafka主題的第二條消息,你知道這里發生了什么嗎?

producer.js

var config = require('./config.js');
var zk = require('node-zookeeper-client');
var kafkaConn = "130.8";
var kafka = require('kafka-node'),
    HighLevelProducer = kafka.HighLevelProducer,
    client = new kafka.Client(kafkaConn),
    producer = new HighLevelProducer(client),
    payloads = [
        { topic: 'test', messages: 'second message' }
    ];
producer.on('ready', function () {
    producer.send(payloads, function (err, data) {
        console.log(data);
    });
});

Consumer.js

function start () {
    topics = [{topic: 'test'}];
    var groupId = 'ulogGroup';
    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 kafka.Client(kafkaConn,clientId);
    var client = new Client(consumer_client.connectionString,clientId);
    var consumer = new HighLevelConsumer(client, topics, options);
    console.log("Consumer topics:", getConsumerTopics(consumer).toString());
   // startConsumer(consumer);
    consumer.on('message', function (message) {
        //var topic = message.data;
        console.log('Message',message);
    });
};
start();

可能是最瑣碎的建議,但是您確定您的第二條消息正在發送到kafka隊列嗎? 與您的使用者一起,您可能要在生產者正在工作時使用內置的命令行使用者來發布消息,以確保所有消息都已被發布。

bin/kafka-console-consumer.sh --zookeeper host:2181 --topic test --from-beginning

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM