0

메시지를 생성하고 소비하는 kafka 클라이언트를 설치 했으므로 제작자가 페이로드를 주제로 보내면 예상대로 작동합니다. 이제는 제작자와 문제가 있습니다. 먼저 메시지를 보낼 수 있었으며 주제도 보낼 수있었습니다. 카프카 주제에서 소비하라. 이제 나는 두 번째 메시지를 보내려하지만 소비자는 카프카 주제에서 두 번째 메시지를 읽지 않는다.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(); 

답변

1

은 가장 사소한 제안이 될 수 있지만, 확실히 두 번째 메시지는 카프카의 큐에 전송되고 있습니까? 소비자와 함께 제작자가 메시지를 게시 할 때 inbuilt 명령 줄 소비자를 사용하여 모든 메시지가 게시되도록 할 수 있습니다.

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

답변 해 주셔서 감사합니다. – hussain