所以我的kafka消费者遇到了一些烦人的抵消提交案。 我在项目中使用“ kafka-node”。 我创建了一个主题。 在2个服务器的使用者组中创建了2个使用者。 自动提交设置为false。 我的使用者收到的每条消息,都会启动一个异步过程,该过程完成后,使用者将提交偏移量,该过程可能需要1到20秒。 我的问题是: 有一种感觉, 使用者1收到一条消息,并需要20秒来处理。 在此过程的中间,他会收到另一条消息,需要1秒钟来处理。 他完成了第二条消息处理,提交了偏移量,然后立即崩溃。 导致先前的消息处理失败。 如果我重新运行使用者,他将不会再读取第一条消息,因为第二条消息已经提交了大于第一条的offsst。 我如何避免这种情况?
Kafkaconsumer.on('message', async(message)=>{
await SOMETHING_ASYNC_1~20SEC;
Kafkaconsumer.commit(()=>{});
});