【发布时间】:2021-03-18 17:56:41
【问题描述】:
我使用 spring kafka 2.x 来读取来自 kafka 的消息。
我的问题是如果我的方法在我的 kafkalistener 方法中花费了一段时间,那一次 kafka 发送相同的消息两次,这对我来说是个问题。如果我当时从 kafka 读取消息我想要什么 kafka 没有第二次向我发送此消息像 max.poll.interval.ms 这样的值不能保证一次读取消息。在 Spring Boot 中实现一次读取策略的正确方法是什么。在我的消息中,我没有密钥,因此我无法控制。
@KafkaListener(topics = "mytopics",groupId = "mygroup",concurrency = 3",containerFactory = "MyListenerContainerFactory")
void messageReceiver(@Payload String data, @Headers MessageHeaders headers) {
String receivedTopic= headers.get(KafkaHeaders.RECEIVED_TOPIC).toString();
//DO something
}
【问题讨论】:
标签: spring-boot apache-kafka kafka-consumer-api spring-kafka