RabbitMQ基础篇之快速入门

文章目录

一、目标需求

  • 新建队列 :创建 hello.queue1 和 hello.queue2 两个队列。
  • 消息发送 :通过交换机 amq.fanout 发送消息,测试消息是否能路由到这两个队列。

二、RabbitMQ 控制台操作步骤

1.创建队列
  1. 进入 RabbitMQ 控制台。
  2. 在 Queues 标签下,点击 Add a new queue。
  3. 填写队列名称(例如:hello.queue1)并点击 Add queue 完成队列创建。
  4. 同样的方式创建另一个队列 hello.queue2。
2.交换机概述
  • RabbitMQ 控制台已经有一些默认的交换机,比如 amq.fanout,它是一个广播类型交换机,会将消息发送给所有绑定的队列。
3.向交换机发送消息
  1. 选择 Exchange 下的 amq.fanout 交换机。
  2. 点击 Publish message 进入消息发送界面。
  3. 填写消息内容(例如 hello mq),然后点击 Publish 发送消息。

4.结果分析
  • 发送消息后,控制台会显示:
    • Publish:消息成功发送到交换机。
    • In:消息已进入交换机,但未能路由到队列。
    • Out:若路由成功,则显示消息已被路由到队列。
5.消息丢失原因
  • 消息丢失的原因:如果交换机没有与任何队列建立绑定关系,消息会丢失。交换机本身没有存储消息的能力,只有路由功能。
  • 交换机的作用:只负责将消息路由到绑定的队列,如果没有队列绑定,则消息会丢失。

三、绑定交换机与队列

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

四、测试消息发送

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

五、消息查看

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

六、结论

  • 交换机的作用 :
    • 交换机只负责消息路由,不保存消息。
    • 如果路由失败,消息会丢失。
    • 交换机只能将消息发送到与其绑定的队列。
  • 队列与交换机的绑定 :
    • 只有交换机和队列之间建立了绑定关系,消息才能被正确路由到队列。
相关推荐
宸津-代码粉碎机2 小时前
OpenAI 连夜迎战 Grok Bot 和 Muse:AI 智能体从 “会聊天” 到 “能办事”,现在入场还来得及吗
java·大数据·人工智能·分布式·python
程序猿乐锅4 小时前
【黑马点评 | 第八篇】Redisson分布式锁
java·数据库·spring boot·redis·分布式·spring·缓存
ly76894 小时前
RabbitMQ 消费确认与预取:manual ack、reject、nack 与 QoS 的取舍
rabbitmq·死信队列·消息可靠性·消费确认·qos 预取
灯澜忆梦5 小时前
【RabbitMQ #7】 | 消息转换器
分布式·rabbitmq·ruby
需要8266 小时前
分布式事务:Seata AT/TCC/SAGA 的取舍与踩坑
java·spring boot·分布式·spring·spring cloud
CS创新实验室8 小时前
为什么三台机器就能选出一个“带头大哥“?——Raft 一致性算法,一次讲透
分布式·操作系统
本人手速666+10 小时前
企微开发API如何设计客户冻结状态?WeComApi 在删除、投诉和异常客户场景中的自动化边界
运维·分布式·自动化·企业微信·企微外部群开发·wecomapi·企业微信二次开发
灯澜忆梦11 小时前
【RabbitMQ #4】 | Work 任务模型
分布式·rabbitmq
程序猿乐锅12 小时前
【黑马点评 | 第七篇】Redis 分布式锁的两种实现
java·数据库·redis·分布式·spring·缓存
千里码aicood13 小时前
基于Hadoop的机票价格波动分析系统的设计与实现
大数据·hadoop·分布式