I am using kafkajs library to implement kafka consumer in nodejs. I tried to find paramater in kafkajs official document where I could specify number of consumers needed in consumer group, but I couldn't find any.
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
}
})
}
The only way I could think of is to loop over same code for creating multiple consumers. Is there any way to pass number of consumer in kafkajs consumer instance? There is parameter partitionsConsumedConcurrently but it does not actually create consumers.