控制多个 JMS 队列的消耗

Control consumption of multiple JMS queues

我在任何地方都找不到此信息。我有两个队列,@JmsListener(destination = "p1")@JmsListener(destination = "p2")。我怎样才能确保我一次只处理 1 条消息,即使我正在收听 2 个队列,以及如何配置轮询我首先从哪个队列获取消息,即在处理完我想轮询的消息之后p1 第一。或者进行加权轮询:p1:90%,p2:10%。等等

基本上我问的是如何为Spring实现消息的优先级处理。我使用的 SQS 不支持优先级。

使用 JmsTemplate receive()receiveAndConvert() 方法之一,而不是消息驱动模型。

如果要确保不丢失消息,请使用事务。