Kafka代码实现--from-beginning,读取历史未消费的数据

当Kafka消费者全部宕机后,重启时需要读取宕机期间未处理的Producer数据。通过设置消息偏移量或者使用`seekToBeginning()`方法,结合再均衡监听器,可以在Java客户端代码中确保从头开始消费Kafka消息。
摘要由CSDN通过智能技术生成

Kafka实际环境有可能会出现Consumer全部宕机,虽然基于Kafka的高可用特性,消费者群组中的消费者可以实现再均衡,所有Consumer不处理数据的情况很少,但是还是有可能会出现,此时就要求Consumer重启的时候能够读取在宕机期间Producer发送的数据。基于消费者订阅模式默认是无法实现的,因为只能订阅最新发送的数据。

通过消费者命令行可以实现,只要在命令行中加上--from-beginning即可(具体可见文章 Kafka安装与配置 ),但是通过Java客户端代码如何实现呢?这就要用到消息偏移量的重定位方法 seek() 或者直接使用 seekToBeginning() 方法,基于再均衡监听器,在给消费者分配分区的时候将消息偏移量跳转到起始位置 。

代码示例如下:

public class Consumer {
    private static final String server = "192.168.3.22:9092";

    public static 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值