试图在卡夫卡建立消费者和生产者

时间:2018-11-20 06:27:13

标签: javascript node.js apache-kafka kafka-consumer-api kafka-producer-api

我正在尝试使用node-rdkafka

在Kafka上进行简单的生产者-消费者流

我正在使用debug: 'all'模式,这是我从日志中得到的:

制作人:test [0]: MessageSet with 1 message(s) delivered

消费者:Fetch topic test [0] at offset 38 (v2)

消费者在生成消息时正在更改偏移量这一事实使我相信与代理的连接已正确建立并经过身份验证。

但是,由于某种原因,我没有在消费者中得到消息本身。

此事件从未调用:

consumer.on('data', function(m) {
    console.log("consumed", m)
});

我创建了一个用于测试的演示项目,您需要具有支持SASL_SSL协议的Kafka代理才能使用它:

https://github.com/guysegal/kafka-example

具体来说,这是消费者代码:

https://github.com/guysegal/kafka-example/blob/master/src/consumer.ts

和生产者代码:

https://github.com/guysegal/kafka-example/blob/master/src/producer.ts

1 个答案:

答案 0 :(得分:0)

您可能想要设置值<word2>并再次启动使用者。

'auto.offset.reset': 'earliest'

此属性决定了消费者从没有最后一个已知状态的组开始的消费者的起始位置。例如如果使用新的组ID ID。

更改auto.offset.reset 值的原因是,如果您先生产并在此之后启动使用者,则主题偏移量已经增加,使用者将以最新的偏移量开始(偏移量增加)并从该点开始读取消息。

在使用auto.offset.reset的情况下,消费者从主题的第一条可用消息开始。