RabbitMQ的核心概念

RabbitMQ是一个消息中间件,也是一个生产者消费者模型,负责接收,存储和转发消息。

核心概念

Producer

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

Consumer

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

Broker

代表RabbitMQ Server,负责接收和转发消息

对于RabbitMQ来说,⼀个RabbitMQ Broker可以简单地看作⼀个RabbitMQ服务节点,或者 RabbitMQ服务实例.⼤多数情况下也可以将⼀个RabbitMQ Broker看作⼀台RabbitMQ服务器。

Connection

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

Channel

通道,信道.Channel是在Connection之上的⼀个抽象层.在RabbitMQ中,⼀个TCP连接可以 有多个Channel,每个Channel都是独⽴的虚拟连接.消息的发送和接收都是基于Channel的.

通道的主要作⽤是将消息的读写操作复⽤到同⼀个TCP连接上,这样可以减少建⽴和关闭连接的开销,提⾼性能.

Virtual host

虚拟(主)机.这是⼀个虚拟概念.它为消息队列提供了⼀种逻辑上的隔离机制.对于 RabbitMQ⽽⾔,⼀个Broker Server上可以存在多个Virtual Host.当多个不同的⽤⼾使⽤同⼀个 RabbitMQ Server提供的服务时,可以虚拟划分出多个vhost,每个⽤⼾在⾃⼰的vhost创建 exchange/queue等

类似于mysql上的database,是一个逻辑上的集合,一个mysql服务器可以有多个database.

Queue

队列,是RabbitMQ的内部对象,用来存储消息.

队列和消费者的关系是多对多的,一个队列可以有多个消费者订阅,一个消费者也可以订阅多个队列.

Exchange

交换机,是消息到达broker的第一站,它负责接收生产者发送的消息,并且根据特定的规则来将消息路由到一个或多个队列当中.

工作流程

AMQP

AMQP(Advanced Message Queuing Protocol)是⼀种⾼级消息队列协议,AMQP定义了⼀套确定的 消息交换功能,包括交换器(Exchange),队列(Queue)等.这些组件共同⼯作,使得⽣产者能够将消息发 送到交换器.然后由队列接收并等待消费者接收.AMQP还定义了⼀个⽹络协议,允许客⼾端应⽤通过该协议与消息代理和AMQP模型进⾏交互通信

RabbitMQ是遵从AMQP协议的,换句话说,RabbitMQ就是AMQP协议的Erlang的实现(当然RabbitMQ还 ⽀持STOMP2,MQTT2等协议).AMQP的模型结构和RabbitMQ的模型结构是⼀样的.

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

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

相关文章

快手怎么免费的去掉视频水印?分享这三个工具给你

​ 我们经常会遇到想要保存的视频带有水印,这不仅影响美观,也不利于分享。为了解决这个问题,我将分享三个免费去除视频水印的工具,帮助你轻松去除水印,享受无干扰的视频体验。 工具一:奈斯水印助手(小程序…

初识MATLAB相关学习笔记

MATLAB的主要功能、应用场景及其相对于其他编程语言的优势和劣势 主要功能 1. 数值计算: 矩阵运算和线性代数。 解微分方程组。 优化算法。 数据插值和拟合。 2. 数据可视化: 2D和3D图形绘制。 图像处理和分析。 动画和GUI构建。 3. 算法开发&#x…

【Linux 从基础到进阶】GlusterFS分布式文件系统搭建

GlusterFS分布式文件系统搭建 引言 随着数据存储需求的快速增长,企业和开发者越来越需要一种高效、可扩展的存储解决方案。GlusterFS是一款开源的分布式文件系统,能够将多个存储服务器组合成一个统一的文件系统,提供高可用性、弹性扩展和性能优化等特性。它可以在标准的以…

数码管进阶设计验证

前言 随着数字电路和嵌入式系统的广泛应用,数码管作为一种常见的显示设备,在各种电子产品中扮演着重要角色。数码管以其结构简单、显示清晰和成本低廉的特点,广泛应用于计数器、时钟、测量仪器等领域。然而,传统的数码管设计通常仅…

DBeaver安装使用

文章目录 简介支持的数据库支持的系统 下载安装DBeaver使用修改Maven下载jar地址窗口->首选项连接->驱动->Maven配置仓库地址 选择需要连接的数据库进行连接 简介 DBeaver 是一个通用的数据库管理工具和 SQL 客户端,支持 MySQL, PostgreSQL, Oracle, DB2,…

运维学习————nginx2-配置详解及负载均衡

目录 一、配置文件详解 1.1、结构 1.2、重要配置解释 1.3、详细配置 全局配置 Events HTTP 服务器配置 server虚拟主机配置 location URL匹配配置 1.4、完整配置 二、负载均衡 2.1、概念 2.2、集群规划及实现 2.3、具体实现 2.3.1、克隆 2.3.2、修改tomcat1配…

Python | Leetcode Python题解之第372题超级次方

题目: 题解: class Solution:def superPow(self, a: int, b: List[int]) -> int:MOD 1337ans 1for e in b:ans pow(ans, 10, MOD) * pow(a, e, MOD) % MODreturn ans

C#高效异步文件监控与日志记录工具

优势 异步处理:提高了文件变化处理的效率,避免了阻塞主线程。线程安全:使用了线程安全的队列来避免多线程环境下的竞态条件。日志记录:异步日志记录减少了对主线程的干扰,并且能够处理大量事件。灵活配置:…

【MySQL、Hive】分区表

SQL 本身并不直接支持多线程处理,因为 SQL 是一种声明式语言,主要用于定义和操作数据库中的数据。多线程通常是在应用程序层面实现的。然而,有一些方法可以在 SQL 环境中优化并发处理和提高性能,这些方法在某种程度上可以被视为&q…

How to stream video in a loop via RTP using ffmpeg?

ffmpeg -re -fflags genpts -stream_loop -1 -i conf2-2.mp4 -vcodec copy -an -f rtp rtp://192.168.31.152:2000 vlc 应该可以播放出来的。 这里有一篇文章,有兴趣的可以试试: https://www.wowza.com/docs/how-to-configure-vlc-media-player-for…

MySQL 学习笔记之事务操作

文章目录 MySQL 事务操作事务概述1. 事务操作的基本用法1.1 创建表和插入数据1.2 设置手动提交1.3 正常的转账操作1.4 异常情况处理1.5 使用 START TRANSACTION 2. 事务隔离级别2.1 查看当前事务隔离级别2.2 设置事务隔离级别 完整代码 MySQL 事务操作 事务概述 事务是数据库管…

go+gin+vue入门

后端框架 1、安装go、goland 2、创建空项目 3、下载要用的包:命令行输入go get -u github.com/xxxx 4、安装mysql数据库,使用navicat创建数据库。 5、按照项目框架搭建目录、文件、代码:如router、model… 6、运行测试,go run ma…

云原生之全链路分布式跟踪系统 Zipkin和SkyWalking

贪多嚼不烂 Pinpoint 就不对比了 参考 APM系统简单对比(zipkin,pinpoint和skywalking) springcloud 看云 Zipkin和SkyWalking都是流行的分布式跟踪系统,但它们的设计和实现有明显的不同。 以下是它们之间的一些对比: 数据存储: Zipk…

RedisDistributedLock 分布式锁

设计一个简单的 RedisDistributedLock 类,实现单例模式,并包含基本的锁定机制。这个类将使用 Redis 来管理锁,确保在分布式系统中资源的同步访问 import redis.clients.jedis.Jedis;public class RedisDistributedLock {private static Redi…

nginxlvshaproxy负载均衡的区别

lvs 优势:抗负载能力很强、工作稳定、不占什么流量、pv 超过 1000 万可用 1s nginx:nginx工作第7层,支持 btkp 应用本身分流&#xff0c;s,没有这个功能 nginz 对网络依赖很小&#xff0c;nginx 安装简单也稳定,流量日p<1000 万 nginx 足以能撑住, 一般不是特别大的公司都达…

OpenCV(开源计算机视觉库)

OpenCV&#xff08;开源计算机视觉库&#xff09;是一个专注于实时计算机视觉的全面库&#xff0c;包含了丰富的工具和功能。以下是 OpenCV 中一些关键知识点的详细列表&#xff1a; 核心功能 基本结构&#xff1a;Mat、Scalar、Point、Size、Rect 等。 图像 I/O&#xff1a;读…

# 利刃出鞘_Tomcat 核心原理解析(八)-- Tomcat 集群

利刃出鞘_Tomcat 核心原理解析&#xff08;八&#xff09;-- Tomcat 集群 一、Tomcat专题 - Tomcat集群 - 介绍及准备工作 1、Tomcat集群 简介 由于单台Tomcat的承载能力是有限的&#xff0c;当我们的业务系统用户量比较大&#xff0c;请求压力比较大时&#xff0c;单台Tomc…

macOS安装搭建python环境

安装Homebrew apt-get是一个常见于Debian和Ubuntu等基于Linux的操作系统中的包管理工具&#xff0c;用于安装、更新和移除软件包。然而&#xff0c;macOS使用的是Homebrew或者MacPorts等其他的包管理工具&#xff0c;并不使用apt-get。 如果你想在macOS上使用类似apt-get的功…

Python版《超级玛丽+源码》-Python制作超级玛丽游戏

小时候最喜欢玩的小游戏就是超级玛丽了&#xff0c;有刺激有又技巧&#xff0c;通关真的很难&#xff0c;救下小公主还被抓走了&#xff0c;唉&#xff0c;心累&#xff0c;最后还是硬着头皮继续闯&#xff0c;终于要通关了&#xff0c;之后再玩还是没有那么容易&#xff0c;哈…

<C++> 二叉搜索树

目录 二叉搜索树 1. 概念 2. 二叉搜索树操作 2.1 基础结构 2.2 非递归版 1. 查找 2. 插入 3. 删除 2.3 递归版 1. 查找 2. 插入 3. 删除 2.4 拷贝构造函数 2.5 赋值运算符重载 2.6 析构函数 2.7 完整代码 3. 二叉搜索树的应用 4. 二叉搜索树的性能 二叉搜索树 1. 概念 二叉搜索…