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: dev-unsubscr...@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to