【发布时间】:2018-11-06 18:25:00
【问题描述】:
首先让我告诉你我已经设置好了。
- 持久且持久的队列和交换。
- 手动确认。
- 在 Spring Boot 中使用 rabbitmq。
- SimpleMessageListenerContainer 的并发使用者为 10,最大使用者为 50。
问题场景是, 我正在发送消息 m1,然后是 m2。 m1 需要时间来处理。 m2 进程在 m1 之前完成。对于 m1 和 m2,此处的传递标签与 1 相同。因此,消息 m2 在 m1 之前得到确认,当 m1 得到确认时,我收到未知的传递标签 1 异常。
令人惊讶的是,消息 m1 ack 也被生产者收到了。但问题是 m1 在 RMQ 管理控制台中长时间处于未确认状态。
这可能在 RMQ 中我可以在 m1 之前确认 m2 吗?我知道这两条消息都在同一个频道和同一个队列上。问题是我不能保证两条消息都被传递到不同的队列。
【问题讨论】:
标签: spring-boot rabbitmq activemq spring-rabbit