我正在使用kafkajs库来实现nodejs中的kafka使用者。我试图在kafkajs的官方文档中找到参数,在那里我可以指定消费者群体中需要的消费者数量,但是我找不到。
const kafka = await kafkaService.instantiateKafkaConnection()
const kafkaConfig: IKafkaConfig = await kafkaService.getKafkaConfigs()
const consumer = kafka.consumer({ groupId: kafkaConfig?.consumerConfig?.groupId});
await consumer.connect()
await consumer.subscribe({ topics: kafkaConfig?.topicConfig?.topic })
await consumer.run({
eachMessage: async ({ topic, partition, message }) => {
// business logic
},
}) for(int i=0; i<noOfConsumer; i++){
const kafka = await kafkaService.instantiateKafkaConnection()
const kafkaConfig: IKafkaConfig = await kafkaService.getKafkaConfigs()
const consumer = kafka.consumer({ groupId: kafkaConfig?.consumerConfig?.groupId});
await consumer.connect()
await consumer.subscribe({ topics: kafkaConfig?.topicConfig?.topic })
await consumer.run({
eachMessage: async ({ topic, partition, message }) => {
// business logic
}
})
}我能想到的唯一方法就是循环使用相同的代码来创建多个使用者。在kafkajs消费者实例中是否有传递消费者数量的方法?有参数partitionsConsumedConcurrently,但它实际上并不创建使用者。
发布于 2022-10-02 12:22:31
正如@oneCricketeer所建议的,为了创建多个使用者,我们需要使用同一个使用者组Id部署多个应用程序实例。
https://stackoverflow.com/questions/73892950
复制相似问题