20161021 路由 - fanout 交换机无参绑多队列

目的

验证rabbitmq的 finout方式交换机无参绑定多个队列的配置及使用。

环境

实验室环境的 3 台 Rabbit MQ 服务器,已经配置好集群。

过程

1 新建一个用户,用户名和密码都是 test

$ rabbitmqctl add_user test test
Creating user "test" ...

2 新建一个名称为 test 的 Virtual Hosts 

$ rabbitmqctl add_vhost test
Creating vhost "test" ...

3 设置该用户在该 Virtual Hosts 的权限,权限为可进行任何操作

$ rabbitmqctl set_permissions -p test test ".*" ".*" ".*"
Setting permissions for user "test" in vhost "test" ...

4 查看 test 用户权限

$ rabbitmqctl list_user_permissions test
Listing permissions for user "test" ...
test    .*  .*  .*

5 给 admin 用户设置访问 Virual Hosts名为 test 的所有权限,这样可以在控制台登录 admin 用户看到 test 下的所有内容

$ rabbitmqctl set_permissions -p test admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "test" ...

6 在名称为 test 的 Virtual Host 下新建一个名称为 test_exchange 的 Exchange

7 在名称为 test 的 Virtual Host 下新建一个名称为 test_queue1 的队列

8 在名称为 test 的 Virtual Host 下新建一个名称为 test_queue2 的队列

9 在名称为 test 的 Virtual Host 下新建一个名称为 test_queue3 的队列

10 使用 test_exchange 分别无参绑定这两个队列

11 查看名称为 test 的 Virtual Host 下交换机绑定情况

$ rabbitmqctl list_bindings -p test source_name source_kind destination_name destination_kind routing_key arguments
Listing bindings ...
    exchange    test_queue1 queue   test_queue1 []
    exchange    test_queue2 queue   test_queue2 []
    exchange    test_queue3 queue   test_queue3 []
test_exchange   exchange    test_queue1 queue       []
test_exchange   exchange    test_queue2 queue       []
test_exchange   exchange    test_queue3 queue       []

12 通过控制台向名称为 test_exchange 的交换机发送消息

13 查看名称为 test 的 Virtual Host 下的队列信息

$ rabbitmqctl list_queues -p test name policy pid slave_pids messages_ready
Listing queues ...
test_queue2          2
test_queue1          2
test_queue3           2

结论

  • 类型为 finout 的交换机可绑定多队列,在向该交换机发消息时所有绑定的队列都能收到。

更多实验可点击:Rabbitmq 实验
 

转载于:https://my.oschina.net/u/3568300/blog/3006769

你可能感兴趣的:(20161021 路由 - fanout 交换机无参绑多队列)