NewLifeX / NewLife.RocketMQ

纯托管轻量级RocketMQ客户端,支持发布消息、消费消息、负载均衡等核心功能!
MIT License
212 stars 79 forks source link

消费者服务重启后,同一个topic又开始重头消费了 #76

Closed fengylm closed 1 month ago

fengylm commented 8 months ago

一个topic消费了N条数据后,当重启消费者后,又从第一条开始重新消费了,是我配置的有问题么,配置代码如下

image

如果增加配置 FromLastOffset=true后就只会送最新的开始,历史没有处理的就直接不管了,有没有配置可以指定从上次消费的offset开始继续消费的?

nnhy commented 8 months ago

对于rocketmq来说,服务器会记录每个消费组最后一次消费偏移量。 NewLife.RocketMQ启动的时候,会查询消费组在每一个queue队列上的偏移量,然后从该位置开始消费数据。

如果每次都从最早的一条消息来消费,有可能是客户端启动时未能获取上次偏移量,客户端服务端版本不一致时就可能发生这个问题。 你可以调试代码,获取和设置偏移量的地方。

fengylm commented 8 months ago

确实版本不一致 我重新装个低版本的库试试

nnhy commented 8 months ago

目前没有测试过 rocketmq5.0,有的朋友说能用,有的朋友说不能用。 我在公司用的是 4.x

nnhy commented 7 months ago

这个问题,可能跟另一个有关。阿里云公网消费有缺陷。

https://github.com/NewLifeX/NewLife.RocketMQ/issues/77

nnhy commented 1 month ago

经测试支持 Apache RocketMQ v5.3 !

v2.6.2024.1004 支持RocketMQ v5.3,在公网测试通过。默认内网broker地址替换为公网地址。https://github.com/NewLifeX/NewLife.RocketMQ/commit/006817ea918d48c83b2fb0f1318a8a3b339f9528