apache / rocketmq-spring

Apache RocketMQ Spring Integration
https://rocketmq.apache.org/
Apache License 2.0
2.09k stars 894 forks source link

【Bug】rocketmq-v5-client-spring-boot 的 Simple Consumer 是否不支持 FIFO 消息语义? #675

Open ldcsaa opened 3 weeks ago

ldcsaa commented 3 weeks ago

现象: Simple Consumer 消费FIFO队列时,未对前一条消息执行确认(ack)的情形下,可以接收并确认下一条消息。
这似乎违反了FIFO语义,请问是否为Bug。

操作步骤:

  1. Simple Consumer 工作线程循环调用 receive() 方法接收FIFO队列消息
  2. Producer 向 Simple Consumer 发送 FIFO 消息 A
  3. Simple Consumer 接收到消息 A 后不确认(不调用 ack()
  4. Producer 向 Simple Consumer 发送 FIFO 消息 B
  5. Simple Consumer 会收到 FIFO 消息 B
  6. Simple Consumer 确认消息B(ack(B))成功
  7. 过一段时间后,Simple Consumer 会收到消息 A 的重试消息