【问题标题】:Kafka Consumer Acknowledge message based on condition基于条件的Kafka消费者确认消息
【发布时间】:2021-06-24 20:14:10
【问题描述】:

我希望 if 控件进入 if 块,应该确认消息并且不应该读取 if 之外的语句。 我知道我可以放置一个 else 块,只是想了解消息是否已被确认并将在 if 块中提交,仍然是为什么在执行 if 块之外处理消息。

@Value(${environment.env})
private String env;
@kafkaListener
public void consume(@payload User user, Acknowledgment ack){
   if(!env.equals(user.getEnv()){
log.info("skip");
acknowledgement.acknowlwdge();
}
// If env same
//Do some other processing with payload
}

已将确认模式设置为 Manually_Immediate 并且还自动偏移为false

【问题讨论】:

    标签: spring-boot apache-kafka kafka-consumer-api spring-kafka consumer


    【解决方案1】:

    这就是 Java(或任何计算机语言)的工作原理。确认偏移量就是这样做的,它不会影响在侦听器中执行的代码流。

    你需要一个else { ... } 块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-19
      • 2020-10-08
      • 1970-01-01
      • 1970-01-01
      • 2020-03-09
      • 2018-06-04
      • 2017-09-23
      • 1970-01-01
      相关资源
      最近更新 更多