文章目录
- 一、目标需求
- 二、RabbitMQ 控制台操作步骤
- 1.创建队列
- 2.交换机概述
- 3.向交换机发送消息
- 4.结果分析
- 5.消息丢失原因
- 三、绑定交换机与队列
- 四、测试消息发送
- 五、消息查看
- 六、结论
一、目标需求
- 新建队列:创建
hello.queue1和hello.queue2两个队列。 - 消息发送:通过交换机
amq.fanout发送消息,测试消息是否能路由到这两个队列。
二、RabbitMQ 控制台操作步骤
1.创建队列
- 进入 RabbitMQ 控制台。
- 在
Queues标签下,点击Add a new queue。 - 填写队列名称(例如:
hello.queue1)并点击Add queue完成队列创建。 - 同样的方式创建另一个队列
hello.queue2。


2.交换机概述
- RabbitMQ 控制台已经有一些默认的交换机,比如
amq.fanout,它是一个广播类型交换机,会将消息发送给所有绑定的队列。

3.向交换机发送消息
- 选择
Exchange下的amq.fanout交换机。 - 点击
Publish message进入消息发送界面。 - 填写消息内容(例如
hello mq),然后点击Publish发送消息。


4.结果分析
- 发送消息后,控制台会显示:
- Publish:消息成功发送到交换机。
- In:消息已进入交换机,但未能路由到队列。
- Out:若路由成功,则显示消息已被路由到队列。

5.消息丢失原因
- 消息丢失的原因:如果交换机没有与任何队列建立绑定关系,消息会丢失。交换机本身没有存储消息的能力,只有路由功能。
- 交换机的作用:只负责将消息路由到绑定的队列,如果没有队列绑定,则消息会丢失。

三、绑定交换机与队列
- 回到交换机
amq.fanout页面,点击Bindings。 - 选择
Add binding from exchange,并选择目标队列hello.queue1或hello.queue2,进行绑定。 - 同样的操作,将
hello.queue2队列与交换机绑定。

四、测试消息发送
- 再次发布消息到交换机(例如:
hello everyone)。 - 检查交换机的消息状态:
- Publish in:消息发送到交换机。
- Publish out:消息从交换机转发到绑定的队列。
- 结果显示:消息已经成功路由到两个队列(
hello.queue1和hello.queue2)。


五、消息查看
- 在队列中,可以通过点击
Get message查看消息内容,模拟消费者的消息接收。 - 消息可以查看,但不会丢失,即使没有消费者进行接收。

六、结论
- 交换机的作用:
- 交换机只负责消息路由,不保存消息。
- 如果路由失败,消息会丢失。
- 交换机只能将消息发送到与其绑定的队列。
- 队列与交换机的绑定:
- 只有交换机和队列之间建立了绑定关系,消息才能被正确路由到队列。