RabbitMQ Exchange Type(Direct/Fanout/Topic)理解测试

Exchanges 目前有4 种类型为 Direct , Fanout , Topic , handers 。以下测试简单理解 Exchanges, Routing key 及 Queues 的关系。 


首先创建3个 Exchanges 为 test_direct,test_fanout,test_topic,分别对应的类型为 direct,fanout,topic 。再创建7个队列为 queue00~queue06 。


绑定信息及测试结果:

Exchange

Bindings

测试结果及说明

Queues

Routing key

test_direct

queue00

Publish message 时需指定 Routing key。不指定则发送到第一个不用 Routing key 绑定的 queue00;指定 Routing key 则发送到绑定的队列中。

queue01

rk

queue02

kk01

 

test_fanout

queue00

message 发送到所有绑定的队列中,即使设置 Routing key 也无效,所依没必要设置多余的 Routing key。

queue03

queue04

 

test_topic

queue00

message 发送时发送到通配符符合的队列中。不指定则发送到第一个不用 Routing key 绑定的 queue00;Publish message 指定 Routing key 为 aa.kkk 类的则发送到 Routing key=aa.# 的队列 queue05 中。

queue05

aa.#

queue06

bb.#


绑定操作可在UI管理界面中进行,如下图:


发送消息操作在 bindings 下面,操作如下图:



结果查看队列信息,如下图:



使用命令行创建和绑定脚本参考如下:

#创建 exchange = test_exchange
python rabbitmqadmin declare exchange --vhost=/ name=test_exchange type=direct

# 创建 queue = test_queue
python rabbitmqadmin declare queue --vhost=/ name=test_queue durable=true

# 绑定 test_exchange 与 test_queue
python rabbitmqadmin --vhost="/" declare binding source="test_exchange" destination_type="queue" destination="test_queue" routing_key=""


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值