RabbitMQ 之Java API解析 四(交换机的声明、绑定、删除)
概览
首先看一下交换机相关API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
声明交换机: Exchange.DeclareOk exchangeDeclare(String exchange, String type) throws IOException; Exchange.DeclareOk exchangeDeclare(String exchange, BuiltinExchangeType type) throws IOException; Exchange.DeclareOk exchangeDeclare(String exchange, String type, boolean durable) throws IOException; Exchange.DeclareOk exchangeDeclare(String exchange, BuiltinExchangeType type, boolean durable) throws IOException; Exchange.DeclareOk exchangeDeclare(String exchange, String type, boolean durable, boolean autoDelete, Map<String, Object> arguments) throws IOException; Exchange.DeclareOk exchangeDeclare(String exchange, BuiltinExchangeType type, boolean durable, boolean autoDelete, Map<String, Object> arguments) throws IOException; Exchange.DeclareOk exchangeDeclare(String exchange, String type, boolean durable, boolean autoDelete, boolean internal, Map<String, Object> arguments) throws IOException; Exchange.DeclareOk exchangeDeclare(String exchange, BuiltinExchangeType type, boolean durable, boolean autoDelete, boolean internal, Map<String, Object> arguments) throws IOException; void exchangeDeclareNoWait(String exchange, String type, boolean durable, boolean autoDelete, boolean internal, Map<String, Object> arguments) throws IOException; void exchangeDeclareNoWait(String exchange, BuiltinExchangeType type, boolean durable, boolean autoDelete, boolean internal, Map<String, Object> arguments) throws IOException; Exchange.DeclareOk exchangeDeclarePassive(String name) throws IOException; 删除交换机: Exchange.DeleteOk exchangeDelete(String exchange, boolean ifUnused) throws IOException; Exchange.DeleteOk exchangeDelete(String exchange) throws IOException; void exchangeDeleteNoWait(String exchange, boolean ifUnused) throws IOException; 交换机绑定: Exchange.BindOk exchangeBind(String destination, String source, String routingKey) throws IOException; Exchange.BindOk exchangeBind(String destination, String source, String routingKey, Map<String, Object> arguments) throws IOException; void exchangeBindNoWait(String destination, String source, String routingKey, Map<String, Object> arguments) throws IOException; 交换机解绑: Exchange.UnbindOk exchangeUnbind(String destination, String source, String routingKey) throws IOException; Exchange.UnbindOk exchangeUnbind(String destination, String source, String routingKey, Map<String, Object> arguments) throws IOException; void exchangeUnbindNoWait(String destination, String source, String routingKey, Map<String, Object> arguments) throws IOException; |
交换机声明
交换机的声明 API 有11个 BuiltinExchangeType 是type的枚举类 主要的就3个
1 2 3 |
Exchange.DeclareOk exchangeDeclare(String exchange, String type, boolean durable, boolean autoDelete, boolean internal, Map<String, Object> arguments) throws IOException; void exchangeDeclareNoWait(String exchange, String type, boolean durable, boolean autoDelete, boolean internal, Map<String, Object> arguments) throws IOException; Exchange.DeclareOk exchangeDeclarePassive(String name) throws IOException; |
exchangeDeclare 声明交换机,
参数:
exchange 交换机名称
type 交换机类型
durable 是否持久化
autoDelete 是否自动删除,当已经没有消费者时,服务器是否可以删除该Exchange
internal 是否为内部交换机
arguments 附加参数 如: alternate-exchange (备用交换机,当遇到队列不存在或者绑定的Key错误时会转发到备用交换机)
exchangeDeclareNoWait 异步声明交换机
参数和上面的一样,只不过声明方式是异步的
exchangeDeclarePassive 消极声明
交换机存在就抛出异常,可以用来判断交换机是否存在
交换机绑定
1 |
Exchange.BindOk exchangeBind(String destination, String source, String routingKey, Map<String, Object> arguments) throws IOException; |
交换机之间可以绑定,参数解析:
destination 目标交换机
source 源交换机
routingKey 路由Key
arguments 附加参数
1 |
void exchangeBindNoWait(String destination, String source, String routingKey, Map<String, Object> arguments) throws IOException; |
交换机异步绑定
交换机解绑
1 |
Exchange.UnbindOk exchangeUnbind(String destination, String source, String routingKey, Map<String, Object> arguments) throws IOException; |
交换机解除绑定 参数和绑定一样
1 |
void exchangeUnbindNoWait(String destination, String source, String routingKey, Map<String, Object> arguments) throws IOException; |
交换机异步解除绑定
删除交换机
1 |
Exchange.DeleteOk exchangeDelete(String exchange, boolean ifUnused) throws IOException; |
删除交换机,参数解析:
exchange 交换机名称
ifUnused 正在使用的交换机是否删除
1 |
Exchange.DeleteOk exchangeDelete(String exchange) throws IOException; |
这个查看源码:
1 2 3 4 5 |
public Exchange.DeleteOk exchangeDelete(String exchange) throws IOException { return exchangeDelete(exchange, false); } |
删除未被使用的交换机
1 |
void exchangeDeleteNoWait(String exchange, boolean ifUnused) throws IOException; |
异步删除交换机
本文链接:RabbitMQ 之Java API解析 四(交换机的声明、绑定、删除)
转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:破晓(http://www.code2048.net),谢谢!^^