配置 Rabbit MQ 全局的消息过期时间
在我们支持第三方系统对接的时候,消息队列往往是一个比较常用的推送解决方案,但是为了防止第三方系统不接收消息,或者保证消息的有效性,我们会考虑为队列添加 TTL 属性,来使得消息自动过期。
注意
不是所有的队列,或者所有的业务都需要配置过期时间,如果这个队列是由我们自己系统做管控,而且要保证它们都被第三方系统消费,这种情况下不能有自动过期策略,或者有其它的诸如死信队列这样的机制。
根据规则配置队列的自动过期时间
根据官方文档 [1],我们可以通过 Set-Policy 机制,为不同的队列配置不同的 ttl policy,以下是一个最简单的例子:
1 | rabbitmqctl set_policy TTL ".*" '{"message-ttl":60000}' --apply-to queues |
以上命令中,我们把所有队列都配置上了自动过期时间为 60 秒。