我有一个队列x-expires
放。我遇到的问题是我需要对队列中的消息进行进一步处理IF队列过期。我最初的想法是设置x-dead-letter-exchange
在队列中。但是,当队列过期时,消息就会消失而不会进入死信交换。
如何处理死信或以其他方式处理队列中过期的消息?
正如评论中所建议的,您不能仅依靠x-expire
特征。但在我遇到的类似情况下有效的解决方案是:
- Use
x-message-ttl
确保消息如果不及时使用就会消失,
- 将死信交换分配给所有这些消息将被路由的队列,
- Use
x-expires
将队列过期设置为高于消息 TTL 的值,
- (这是棘手的部分)假设您可以控制您的消费者,在最后一个消费者离线之前,删除与“垂死”队列的绑定,可能通过REST API 调用 https://pulse.mozilla.org/api/- 这将阻止新消息被路由到队列。
这样,在最后一个消费者死亡之前发布的消息已经被处理,现有的消息将在队列过期之前成为死信,并且新的消息无法进入队列。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)