Kafka性质小结

1、关于消息偏移量的确认

消息的确认包括自动确认和手动确认,通常采用手动确认的方式,配置项和代码块分别如下所示。这里需要注意的是,当消息1、2、3顺序到达,2偏移量确认失败,3偏移量确认成功时,2的偏移量将被覆盖,即后续将从3的偏移量开始消费,不会再次消费消息2 !!!

spring:
  kafka:
    consumer:
      ......
      # 关闭自动提交偏移量
      enable-auto-commit: false
    listener:
      # 拉取数据方式: single、batch
      type: single
      # 偏移量提交方式:手动
      ack-mode: manual_immediate
@Component
public class MessageConsumer {
    @KafkaListener(topics = "topic-smy", groupId = "my_group1")
    public void handleMessage(ConsumerRecord<String, String> record, Acknowledgment ack) {
        // 消息处理
        System.out.println("接收到消息, topic = "+ record.topic()
            		+",partition:"+record.partition()
            		+",offset = "+record.offset()
            		+",key = "+record.key()
            		+",value = "+record.value());
        if(!"0".equals(record.value())) {
            // 消息偏移量确认
            ack.acknowledge();
        }
    }
}

2、其他

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值