分布式消息服务RABBITMQ版-提高RabbitMQ性能:自动删除不再使用的队列

时间:2024-09-03 11:07:17

自动删除不再使用的队列

客户端可能连接失败导致队列被残留,大量的残留队列会影响实例的性能。RabbitMQ提供三种自动删除队列的方法:

  • 在队列中设置TTL策略:例如TTL策略设置为28天,当持续28天队列未被使用时,此队列将被删除。
  • 使用auto-delete队列:当最后一个消费者退出或通道/连接关闭(或与服务器的TCP连接丢失)时,auto-delete队列会被删除。
  • 使用exclusive queue:只能在创建exclusive queue的连接中使用,当此连接关闭或消失时,exclusive queue会被删除。

设置auto-delete队列和exclusive queue的方法如下:

boolean exclusive = true;
boolean autoDelete = true;
channel.queueDeclare(QUEUENAME, durable, exclusive, autoDelete, arguments);
support.huaweicloud.com/bestpractice-rabbitmq/bp-0012.html