rocketmq 如何重复消费消息-偏移量

对于rocketmq,面试中常见的问题都是如何避免mq重复消费,但是对于我当前的需求是需要进行重复消费的,搜索百度是没有答案的,之后根据大佬的解说我了解到偏移量,下面根据我自己的需求和理解分享以下,若是有错误的地方,欢迎大家指出,感谢

什么是offset?

原文链接:https://blog.csdn.net/qq_29235677/article/details/97622733

message queue是无限长的数组,一条消息进来下标就会长1,下标就是offset,消息在某个MessageQueue里的位置,通过offset的值可以定位到这条消息,或者指示Consumer从这条消息开始向后处理

message queue中的maxOffset表示消息的最大offset, maxOffset并不是最新的那条消息的offset,而是最新消息的offset+1,minOffset则是现存在的最小offset。
fileReserveTime=48 默认消息存储48小时后,消费会被物理地从磁盘删除,message queue的min offset也就对应增长。所以比minOffset还要小的那些消息已经不在broker上了,就无法被消费

浅显的理解:也就是在48小时内,只要我消费之后在将偏移量重置,那这些消息还是可以重复消费的

我们这边的需求大概是:需要两方的数据进行匹配(匹配条件是时间,内容和号码)由于从数据库层面性能太差,所以大佬就提议直接将数据在从mq中取出之后直接匹配
由于是公司业务,只贴出部分代码参考;

DefaultMQPu
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值