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的模型结构是⼀样的.

相关推荐
我要用代码向我喜欢的女孩表白4 分钟前
在spark集群上在部署一套spark环境,不要影响过去环境
大数据·分布式·spark
2603_954708312 小时前
多微电网系统架构:集群协同与能量互济的网络设计
网络·人工智能·分布式·物联网·架构·系统架构
8Qi82 小时前
RabbitMQ高级篇:消息可靠性、幂等性与延迟消息
java·分布式·微服务·中间件·rabbitmq·springcloud
互联网散修3 小时前
鸿蒙跨设备实时绘图同步:从零到一实现分布式画板
分布式·wpf·harmonyos
REDcker3 小时前
RabbitMQ系列03 - AMQP分层与协议流转
分布式·rabbitmq
一点 内容3 小时前
Scrapy框架深度解析:高效构建分布式爬虫的实战指南
分布式·爬虫·scrapy
Rany-3 小时前
分布式光纤传感:新一代管网探漏监测技术
分布式
硅基诗人5 小时前
Java后端高并发核心瓶颈突破(JVM+并发+分布式底层实战)
java·jvm·分布式
Albert Edison5 小时前
【RabbitMQ】工作队列模式(使用案例)
分布式·rabbitmq·ruby
MoFe15 小时前
【Rabbitmq】windows环境下搭建与使用
分布式·rabbitmq