【发布时间】:2020-11-10 14:28:03
【问题描述】:
我对 Kafka 很陌生。 使用 spring-boot kafka,我使用一个 Message 对象和手动 ack 开发了一个发布者和一个消费者。我的代码使用弹簧注释。这是完美的作品。 现在,当我连接到生产代理时,这个代理发送的不是一条消息,而是一个消息列表。 我的侦听器方法具有以下签名:
@KafkaListener (topics="MessagesTopic", containerFactory="messageContainerfactory")
public void listen(@Payload Message message, Acknowledgment ack)
所以我可以确认每条消息。好的。 但现在看来我必须将其替换为
@KafkaListener (topics="MessagesTopic", containerFactory="messageContainerfactory")
public void listen(@Payload List<Message> messages, Acknowledgment ack)
即使遵循文档,我似乎也应该使用
@KafkaListener (topics="MessagesTopic", containerFactory="messageContainerfactory")
public void listen(@Payload List<Message> messages, Acknowledgment ack, Consumer<?,?> consumer)
- 我应该将批处理模式设置为 true 吗?
- 现在的问题是:当这条消息被完全处理后,我如何确认每条消息?
非常感谢您的帮助
【问题讨论】:
标签: spring-boot apache-kafka consumer