文章目录
- 一、目标需求
- 二、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
查看消息内容,模拟消费者的消息接收。 - 消息可以查看,但不会丢失,即使没有消费者进行接收。
六、结论
- 交换机的作用:
- 交换机只负责消息路由,不保存消息。
- 如果路由失败,消息会丢失。
- 交换机只能将消息发送到与其绑定的队列。
- 队列与交换机的绑定:
- 只有交换机和队列之间建立了绑定关系,消息才能被正确路由到队列。