我们正在开发一个springboot应用程序,其中消息生成到kafka队列中,并由侦听器拉入(跨多个服务器,每个服务器上可以处理多个线程)。
当消息处理成功后,我们将执行以下操作 Acknowledgement.acknowledge()
在侦听器中,将消息标记为已处理。
然而,根据文件:https://docs.spring.io/spring-kafka/api/org/springframework/kafka/support/acknowledgment.html:
调用此方法意味着分区中以前的所有消息都已被处理
我可以看到这会导致多线程和争用条件出现问题。。。
类似的未回答的问题:SpringKafka是线程安全的吗?
所以,我想我是在问 Acknowledgement.acknowledge()
不是正确的方法吗?必须有一种方法将特定消息(而不是整个偏移量)标记为已处理。。。
谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!