RabbitMQ(一)概述

news2024/11/26 1:43:44

1 RabbitMQ 概念
RabbitMQ 是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑 RabbitMQ 是一个快递站,一个快递员帮你传递快件。 RabbitMQ 与快递站的主要区别在于,它不处理快件而是接收,存储和转发消息数据。

2 四大核心概念
2.1 生产者(Producer)
产生数据发送消息的程序是生产者

2.2 交换机(Exchange)
交换机是 RabbitMQ 非常重要的一个部件,一方面它接收来自生产者的消息,另一方面它将消息推送到队列中。交换机必须确切知道如何处理它接收到的消息,是将这些消息推送到特定队列还是推送到多个队列,亦或者是把消息丢弃,这个得有交换机类型决定

2.3 队列(Queue)
队列是 RabbitMQ 内部使用的一种数据结构, 尽管消息流经 RabbitMQ 和应用程序,但它们只能存储在队列中。队列仅受主机的内存和磁盘限制的约束,本质上是一个大的消息缓冲区。许多生产者可以将消息发送到一个队列,许多消费者可以尝试从一个队列接收数据。这就是我们使用队列的方式

2.4 消费者(Consumer)
消费与接收具有相似的含义。消费者大多时候是一个等待接收消息的程序。 请注意生产者,消费者和消息中间件很多时候并不在同一机器上。同一个应用程序既可以是生产者又是可以是消费者。

3 架构介绍


Broker:接收和分发消息的应用, RabbitMQ Server 就是 Message Broker
Virtual host:出于多租户和安全因素设计的,把 AMQP 的基本组件划分到一个虚拟的分组中,类似于网络中的 namespace 概念。当多个不同的用户使用同一个 RabbitMQ server 提供的服务时,可以划分出多个 vhost,每个用户在自己的 vhost 创建 exchange/ queue 等
Connection: publisher/ consumer 和 broker 之间的 TCP 连接
Channel:如果每一次访问 RabbitMQ 都建立一个 Connection,在消息量大的时候建立 TCP Connection 的开销将是巨大的,效率也较低。 Channel 是在 connection 内部建立的逻辑连接,如果应用程序支持多线程,通常每个 thread 创建单独的 channel 进行通讯, AMQP method 包含了 channel id 帮助客户端和 message broker 识别 channel,所以 channel 之间是完全隔离的。 Channel 作为轻量级的 Connection 极大减少了操作系统建立 TCP connection 的开销
Exchange: message 到达 broker 的第一站,根据分发规则,匹配查询表中的 routing key,分发消息到 queue 中去。常用的类型有: direct (point-to-point), topic (publish-subscribe) and fanout(multicast)
Queue: 消息最终被送到这里等待 consumer 取走
Binding: exchange 和 queue 之间的虚拟连接, binding 中可以包含 routing key, Binding 信息被保存到 exchange 中的查询表中,用于 message 的分发依据

RabbitMQ(一)概述_爱是与世界屏的技术博客_51CTO博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1292138.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文搞懂系列——你真的了解如何生成动态库了吗?

引言 动态库的编译,这有什么难度,这不是手到擒来的事情吗?无非不就是: gcc -FPIC -shared -o libxxx.so *.o *.c 我若是提出这些需求场景,阁下又如何应对呢? 动态库A依赖其他部分提供的能力。但是却不…

IT外包对中小企业的独特优势

在竞争激烈的商业环境中,企业的发展稍有缓慢,就很有可能被竞争对手快速赶超、趁机抢占市场。一些中小企业为了更好地应对市场变化和提高自身竞争力,越来越多地转向了IT外包服务。相较于大型企业,中小企业在选择IT外包时能够获得一…

SSL证书代理

众所周知,SSL证书已经成为当下网络安全中不可或缺的一个环节,对于很多开发公司来说,给自己的客户提供SSL证书安全服务也是最为基础的。 但是目前市面上像阿里云之类的证书服务商对于开发公司需要的证书并没有太大的一个优惠政策,给…

一:C语言常见概念

一:C语言常见概念 1.认识C语言: ​ C语言是人和计算机交流的语言 ​ C语言是一门面向过程的语言,而C,Java,Python等是一门面向对象的语言 ​ 软件开发(项目):面向过程面向对象 …

python爬虫来抓取闲鱼二手机信息,小赚一笔

虽然海鲜市场现在已经不如以前了,但是还是可以捡漏的,省钱也是赚钱,最近正好有换机的准备,每天刷来刷去的浪费了好多时间,也会进入选择困难症。 参考了一些大神的思路写法,写了个简单抓取指定需求的爬虫代码…

微信服务号转订阅号的流程

服务号和订阅号有什么区别?服务号转为订阅号有哪些作用?很多小伙伴想把服务号改为订阅号,但是不知道改了之后具体有什么作用,今天跟大家具体讲解一下。首先我们知道服务号一个月只能发四次文章,但是订阅号每天都可以发…

JSP以监听生命周期为例 讲解监听器

好 最后 我们说说监听器 内容还是非常多的 这里 从老师哪里拿到的一个文案 大家可以查看具体内容 我们这里以监听声明周期为例 这边 我们在项目java模块下创建一个包 叫 listener 名字随便取 我们就这样 看着明显一点 然后 我们在下面创建一个java类 叫 test 因为是用来测试的…

一张图理解接口测试框架

测试框架先向测试数据库中插入测试数据(如:name”Tom“) 调用被测系统提供的接口(传参:name”Tom“) 从测试数据库中查到符合参数的数据 将查询到的数据组成Json格式,并返回给测试框架 提供…

坐标机械手配件有哪些?

直线模组是一种常见的机械传动装置,广泛应用于机械手等自动化设备中,在机械手中的主要作用是实现机械手的运动控制和定位。 直线模组具有高精度、高可靠性的特点,可以满足坐标机械手对运动精度和稳定性的要求,在坐标机械手的关节处…

详解线段树

前段时间写过一篇关于树状数组的博客树状数组,今天我们要介绍的是线段树,线段树比树状数组中的应用场景更加的广泛。这些问题也是在leetcode 11月的每日一题频繁遇到的问题,实际上线段树就和红黑树 、堆一样是一类模板,但是标准库…

Linux篇之在Centos环境下搭建Nvidia显卡驱动

一、前提条件 1、首先确认内核版本和发行版本,再确认显卡型号 uname -a // Linux localhost.localdomain 4.18.0-408.el8.x86_64 #1 SMP Mon Jul 18 17:42:52 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux1.2 cat /etc/redhat-release // CentOS Stream release 81.3…

logback日志框架使用

依赖引入 <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.1.7</version> </dependency> 使用logback日志框架只需要引入以上即可&#xff0c;(我们平时使用较多的Slf4j…

获取Github Copilot的Token

可以在线提取出Github Copilot插件的Token&#xff0c;这样的话就可以把Token拿来做别的用处了&#xff0c;比如共享给其他人 Github Copilot是一款由GitHub和OpenAI合作开发的人工智能编程助手。它利用机器学习和自然语言处理技术&#xff0c;能够根据用户的输入自动生成代码…

使用DockerUI结合内网穿透工具轻松实现公网访问和管理docker容器

文章目录 前言1. 安装部署DockerUI2. 安装cpolar内网穿透3. 配置DockerUI公网访问地址4. 公网远程访问DockerUI5. 固定DockerUI公网地址 前言 DockerUI是一个docker容器镜像的可视化图形化管理工具。DockerUI可以用来轻松构建、管理和维护docker环境。它是完全开源且免费的。基…

Python小案例:while练习题

目录 while练习题&#xff1a;1、存款多少年能翻倍2.小球坠落长度计算3、猴子吃桃4、计算&#xff1a;1-23-4...99-100的和 while练习题&#xff1a; 1、存款多少年能翻倍 1万本金&#xff0c;年利息&#xff1a;0.0325&#xff0c;求连本带息多少年能翻倍 解析&#xff1a;…

IP地址定位技术的原理与应用

在当今的数字化时代&#xff0c;我们的在线活动每时每刻都在生成大量数据。其中&#xff0c;IP地址作为网络设备在互联网上的唯一标识&#xff0c;提供了一种独特的方式来追踪和定位这些活动。本文将深入探讨IP定位技术的原理及其在现实生活中的应用。 IP定位技术的原理 IP地址…

【Hive】——概述

1 什么是Hive 2 Hive 优点 3 Hive和Hadoop 的关系 4 映射信息记录 5 SQL语法解析、编译 Hive能将一个文件映射成为一张表&#xff0c;文件和表之间的关系称为映射 Hive的功能职责是将SQL语法解析编译成为MapReduce 6 Hive 架构 6.1 分析 6.2 架构图 6.3 用户接口 6.4 元数据存…

通信线缆是什么

通信线缆 电子元器件百科 文章目录 通信线缆前言一、通信线缆是什么二、通信线缆的类别三、通信线缆应用实例四、通信线缆的作用原理总结前言 每种线缆都有其特定的特性和用途。通信线缆起到连接和传输信号的作用,是实现通信和数据传输的重要组成部分。 一、通信线缆是什么 …

评论送书:一本书讲透Java线程:原理与实践

摘要&#xff1a;互联网的每一个角落&#xff0c;无论是大型电商平台的秒杀活动&#xff0c;社交平台的实时消息推送&#xff0c;还是在线视频平台的流量洪峰&#xff0c;背后都离不开多线程技术的支持。在数字化转型的过程中&#xff0c;高并发、高性能是衡量系统性能的核心指…

春风十里不如你——掌握Spring Boot的常用关键注解

引言 在Java的世界里&#xff0c;Spring Boot以其简化的配置和开箱即用的特性&#xff0c;成为了构建现代微服务和企业级应用的首选框架。Spring Boot的注解是这一切的核心。在本文中&#xff0c;我们将深入探讨最常用的Spring Boot注解&#xff0c;帮助你轻松驾驭Spring Boot…