当前位置: 首页 > news >正文

RabbitMQ基础篇之快速入门

文章目录

      • 一、目标需求
      • 二、RabbitMQ 控制台操作步骤
        • 1.创建队列
        • 2.交换机概述
        • 3.向交换机发送消息
        • 4.结果分析
        • 5.消息丢失原因
      • 三、绑定交换机与队列
      • 四、测试消息发送
      • 五、消息查看
      • 六、结论

一、目标需求

  • 新建队列:创建 hello.queue1hello.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.queue1hello.queue2,进行绑定。
  3. 同样的操作,将 hello.queue2 队列与交换机绑定。


四、测试消息发送

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



五、消息查看

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


六、结论

  • 交换机的作用
    • 交换机只负责消息路由,不保存消息
    • 如果路由失败,消息会丢失。
    • 交换机只能将消息发送到与其绑定的队列。
  • 队列与交换机的绑定
    • 只有交换机和队列之间建立了绑定关系,消息才能被正确路由到队列。
http://www.lryc.cn/news/512406.html

相关文章:

  • 如何自定义 Kubernetes KubeSphere 默认 Logo:详细实现方案
  • 标准库以及HAL库——按键控制LED灯代码
  • Echarts+vue电商平台数据可视化——webSocket改造项目
  • Flink中并行度和slot的关系——任务和任务槽
  • 基于西湖大学强化学习课程的笔记
  • 瀚高数据库 问题: ERROR: operator does not exist: character varying = integer
  • 冷链温度记录仪蓝牙应用案例
  • LeetCode - Google 校招100题 第7天 序列(数据结构贪心) (15题)
  • 深入理解Redis:从理论到实践的Java之旅
  • LabVIEW故障诊断中的无故障数据怎么办
  • 基于DIODES AP43781+PI3USB31531+PI3DPX1207C的USB-C PD Video 之全功能显示器连接端口方案
  • MySQL配置my.ini文件
  • JVM常见排查问题的命令及可视化工具
  • 【python】matplotlib(moon cake)
  • Pytorch使用手册-空间变换网络指南(专题十五)
  • Vue 中el-table-column 进行循环,页面没渲染成功
  • 基于单片机的温湿度采集系统(论文+源码)
  • 使用envoyfilter添加请求头
  • kafka开机自启失败问题处理
  • 优化站群SEO:使用苹果CMS泛目录插件实现泛目录页面刷新不变
  • git clone 和 conda 换源
  • 人工智能及深度学习的一些题目(二)
  • 怎么在VMware Workstation上安装Win11虚拟机?
  • 协程原理 函数栈 有栈协程
  • SpringBoot整合springmvc、扩展springmvc
  • 免费部署本地AI大语言模型聊天系统:Chatbox AI + 马斯克grok2.0大模型(简单5步实现,免费且比GPT4.0更好用)
  • 音视频入门基础:MPEG2-TS专题(22)——FFmpeg源码中,获取TS流的音频信息的实现
  • 从零搭建SpringBoot3+Vue3前后端分离项目基座,中小项目可用
  • 修改表字段属性,SQL总结
  • go-xorm连接