我有一个JMS队列,我收到几种类型的消息。所有消息都是对象消息。 我有Spring DMLC处理它们并尝试将它们传送到外部端点。
每种消息类型都与不同的端点相关联。
Example:
Message A with type A to be delivered to endpoint A
Message B with type A to be delivered to endpoint A
Message C with type A to be delivered to endpoint A
Message D with type X to be delivered to endpoint X
Message E with type X to be delivered to endpoint X
Message F with type X to be delivered to endpoint X
如果其中一个端点出现故障,如果我使用Redelivery Policy设置长达2小时,我不希望其他端点的邮件被阻止。
假设消费者选择了一组消息传递给端点X,如果X关闭,我不想阻止为端点Y传递其他消息。
非阻塞消费者是否帮助我?
当我使用阻止使用者使用重新传递策略时,它会被阻塞,直到端点恢复正常或直到它重新传递并放弃将失败的消息丢弃到DLQ。
当外部端点只有一个时,阻止消费者工作得很好。如果它关闭,那么消费者会阻止这些消息,直到端点重新启动。
如果消息必须传递到一个或多个端点,我认为阻止消费者不会帮助我。
我没有找到任何非阻塞消费者的信息,我想知道它是否真的帮助我解决了我的问题。
答案 0 :(得分:0)
老歌,但好东西。在AMQ连接工厂上使用nonBlockingRedelivery(true)