0

node-rdkafka用来消费来自 kafka 的消息。statistics.interval.ms如果设置,消费者进程退出。

这是代码:

const { KafkaConsumer } = require('node-rdkafka')
const consumer = new KafkaConsumer(
    {
        'group.id': 'kafka',
        'metadata.broker.list': 'localhost:9092',
        'statistics.interval.ms': 5000,
    },
    {},
)
consumer
    .on('ready', () => {
        consumer.subscribe(['test1'])
        setInterval(() => {
            consumer.consume(1)
        }, 1000)
    })
    .on('data', (data) => {
        console.log('Message found!  Contents below.')
        console.log(data.value.toString())
    })
    .on('error', (e) => console.log(e))

此代码仅使用一条消息然后退出。我也检查了process.on事件,但没有引发错误。如果我删除'statistics.interval.ms': 5000,那么一切正常

4

2 回答 2

0

这是windows相关的问题。Linux工作得很好。

于 2020-07-13T16:45:59.947 回答
0
consumer
    .on('ready', () => {
        consumer.subscribe(['test1'])
            consumer.consume()
    })
    .on('data', (data) => {
        console.log('Message found!  Contents below.')
        console.log(data.value.toString())
    })
    .on('error', (e) => console.log(e))

试试这个,让我知道它是否适合你。

于 2020-11-12T11:35:58.853 回答