lizhanhui commented on issue #5259:
URL: https://github.com/apache/rocketmq/issues/5259#issuecomment-1272746882
Assume Client CA is now in charge of queue QA, with next-pull-offset 100 and
commit-offset 80. When CA pulls messages, it requests somewhat like
`{queueOffset=100, commitOffset=80, ...}`
When the broker receives this request, it may update consume offset to 80 if
80 is greater than the previously existing value and start to deliver messages
starting from 100.
Now CA crashes and CB picks up, it would first inquire the broker where to
start to consume messages...the broker says 80, and CB would start to pull
messages from 80 and forward.
This is how at-least-once semantics is guaranteed.
If you are critical enough, you would be aware that messages between (80,
100] may be fed to applications more than once.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]