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

【RabbitMQ】核心概念

界⾯上的导航栏共分6部分, 这6部分分别是什么意思呢, 我们先看看RabbitMQ的工作流程

 1. Producer和Consumer

Producer:生产者,是RabbitMQ Server的客户端,向RabbitMQ发送消息

Consumer: 消费者,也是RabbitMQ Server的客户端,从RabbitMQ接收消息

Broker:其实就是RabbitMQServer,主要是接收和收发消息

  • 生产者(Producer)创建消息,然后发布到RabbitMQ中,在实际应用中,消息通常是一个带有一定业务逻辑结构的数据,比如JSON字符串,消息可以带有一定的标签,RabbitMO会根据标签进行路由,把消息发送给感兴趣的消费者(Consumer).
  • 消费者连接到RabbitMQ服务器,就可以消费消息了,消费的过程中,标签会被丢掉,消费者只会收到消息,并不知道消息的生产者是谁,当然消费者也不需要知道,
  • 对于RabbitMQ来说,一个RabbitMQ Broker可以简单地看作一个RabbitMQ服务节点,或者RabbitMQ服务实例,大多数情况下也可以将一个RabbitMO Broker看作一台RabbitMQ服务器

 

2. Connection和Channel

Connection:连接.是客户端和RabbitMQ服务器之间的一个TCP连接,这个连接是建立消息传递的基础,它负责传输客户端和服务器之间的所有数据和控制信息.

Channel: 通道,信道.Channel是在Connection之上的一个抽象层,在 RabbitMQ中,一个TCP连接可以有多个Channel,每个Channel都是独立的虚拟连接,消息的发送和接收都是基于 Channel的.通道的主要作用是将消息的读写操作复用到同一个TCP连接上,这样可以减少建立和关闭连接的开销提高性能.

3. Virtual Host

Virtual host:虚拟主机.这是一个虚拟概念,它为消息队列提供了一种逻辑上的隔离机制.对于RabbitMQ而言,一个 BrokerServer 上可以存在多个 Virtual Host.当多个不同的用户使用同一个RabbitMo Server提供的服务时,可以虚拟划分出多个host,每个用户在自己的host 创建exchange/queue等。

4. Queue

Queue: 队列, 是RabbitMQ的内部对象, 用于存储消息

5. Exchange

Exchange:交换机.message 到达 broker 的第一站,它负责接收生产者发送的消息,并根据特定的规则把这些消息路由到一个或多个Queue列中.
Exchange起到了消息路由的作用,它根据类型和规则来确定如何转发接收到的消息

6. 整体工作流程

  1. Producer生产了一条消息
  2. Producer 连接到RabbitMQBroker,建立一个连接(Connection),开启一个信道(Channel)
  3. Producer声明一个交换机(Exchange),路由消息
  4. Producer声明一个队列(Queue),存放信息
  5. Producer发送消息至RabbitMO Broker
  6. RabbitMO Broker 接收消息,并存入相应的队列(Queue)中,如果未找到相应的队列,则根据生产者的配置,选择丢弃或者退回给生产者,

http://www.kler.cn/news/289772.html

相关文章:

  • 【Go - vendor, 本地, 独立依赖包】
  • 【杭州】目前就业情况-自述
  • JDBC |封装JDBCUtils|PreparedStatement|事务|批处理|数据库连接池| Blob类型数据的读写|Apache—DBUtils简介
  • 一般位置下的3D齐次旋转矩阵
  • HarmonyOS开发实战( Beta5版)应用性能工具CPU Profiler的使用规范
  • WPF样式(Style)与模板(template)区别
  • 使用Python+docx+jieba+wordcloud给word文档生成词云图
  • [论文笔记]RAFT: Adapting Language Model to Domain Specific RAG
  • 竞赛实战--天池金融风控分类问题
  • 社会阶层结构
  • AI机械键盘,罗技推出首款AI机械键盘K98M
  • mysql迁移大量数据备选方案
  • 百度飞浆OCR半自动标注软件OCRLabel配置【详细
  • 大数据学习|理解和对比 Apache Hive 和 Apache Iceberg
  • MIPI接口简介
  • 排查zabbix web部分页面打开慢的问题
  • 深入理解 Prometheus 数据模型与指标监控
  • 软件设计之JDBC(1)
  • day06-集合-CollectionListSet
  • 检查linux是否被入侵之计划任务和系统后门
  • 快速排序(动图详解)(C语言数据结构)
  • Ceph RBD使用
  • String核心设计模式——建造者模式
  • 性能工具之 JProfiler 简单登录案例分析实战
  • 网络安全服务基础Windows--第10节-FTP主动与被动模式
  • 【工具篇】vscode设置护眼色主题皮肤
  • JavaScript基础概述
  • 【RabbitMQ】基本概念以及安装教程
  • (C++ STL)list类的简单模拟实现与源码展示
  • 【大模型测评】2024大语言模型综合能力测评报告(免费下载)