@Service public class RabbitmqAdminServiceImpl extends Object implements RabbitmqAdminService
public void queueBind(String exchangeName, String queueName, String routingKey, com.rabbitmq.client.BuiltinExchangeType type, boolean durable, boolean autoDelete)
RabbitmqAdminService
queueBind
在接口中 RabbitmqAdminService
exchangeName
- 交换机名queueName
- 队列名routingKey
- 路由KEYtype
- 消息模式:FANOUT|TOPIC|DIRECTdurable
- 是否持久化autoDelete
- 是否自动删除交换机
自动删除的条件是向后的
对于exchange交换器,向前是生产端发布的消息和routingKey, 这不能作为exchange自动删除的条件。exchange向后是绑定另一个交换器, 或者绑定队列。这就是exchange交换器删除的条件。 总结:exchange自动删除的条件,有队列或者交换器绑定了本交换器, 然后所有队列或交换器都与本交换器解除绑定,autoDelete=true时,此交换器就会被自动删除。
对于队列,向前是与exchange的绑定关系,这不能作为队列自动删除的条件。 队列向后是被消费者订阅。这就是队列删除的条件。 总结:队列自动删除的条件,有消息者订阅本队列,然后所有消费者都解除订阅此队列, autoDelete=true时,此队列会自动删除,即使此队列中还有消息。