** 1. 功能支持**
pulsar做为一个消息系统,自然是支持游标回滚功能的,但是因为软件还处于快速发展迭代的阶段,有些功能使用上可能会小心一些,以下就是楼主最近碰到以及找到的解决办法。
2. 需求
因为消息安全以及可验证的原因,项目要求需要可将topic中消息回滚到之前几分钟,十几分钟,乃至于最早未删除的位置。经过测试发现pulsar有四种方式可处理回滚事项,一,设置subscriptionInitialPosition,在创建consume的时候处理。二,consumer.seek(messageId)方式,三,admin.topics().peekMessages(topicName,subsciptionName,numMessages);方式,四,admin.topics().resetCursor(topicName,subsciptionName,messageTimestamp)方式,以下讲解一下楼主对他们的理解和测试。
3. 设置subscriptionInitialPosition
创建consume的时候我们可以指定subscriptionInitialPosition(SubscriptionInitialPosition.Earliest)参数;
已经支持的有SubscriptionInitialPosition.Earliest和SubscriptionInitialPosition.Latest,顾名思义,一个是回滚到最初,一个是最新接受到的消息。目标是对某个订阅而言;
pulsar2.3.0游标回滚,移动偏移量测试
最新推荐文章于 2024-06-10 22:01:00 发布