最近公司某個行情推送的rabbitmq服務器由於客戶端異常導致rabbitmq隊列中消息快速堆積,還曾導致過內存積壓導致rabbitmq客戶端被block的情況。考慮到行情信息從業務上來說可以丟失部分消息,並不要求完全可靠。為了盡量避免某個客戶端未及時消費影響整個mq,故考慮對某些隊列中的消息設置TTL。如下:
rabbitmqctl set_policy TTL "ttl.*" '{"message-ttl":60000}' --apply-to queues
具體可查看官方文檔https://www.rabbitmq.com/ttl.html。
所有已經存在的消息不受影響,所有新發布的消息如果在發布到queue之后60s內沒有被客戶端消費,就會自動過期並被erlang vm回收。
