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

相关推荐
AAA修煤气灶刘哥11 小时前
别让Redis「歪脖子」!一次搞定数据倾斜与请求倾斜的捉妖记
redis·分布式·后端
往事随风去1 天前
架构师必备思维:从“任务队列”到“事件广播”,彻底吃透消息队列两大设计模式
消息队列·rabbitmq
Aomnitrix1 天前
知识管理新范式——cpolar+Wiki.js打造企业级分布式知识库
开发语言·javascript·分布式
程序消消乐1 天前
Kafka 入门指南:从 0 到 1 构建你的 Kafka 知识基础入门体系
分布式·kafka
智能化咨询1 天前
Kafka架构:构建高吞吐量分布式消息系统的艺术——进阶优化与行业实践
分布式·架构·kafka
Chasing__Dreams1 天前
kafka--基础知识点--5.2--最多一次、至少一次、精确一次
分布式·kafka
在未来等你1 天前
Elasticsearch面试精讲 Day 17:查询性能调优实践
大数据·分布式·elasticsearch·搜索引擎·面试
大数据CLUB1 天前
基于spark的澳洲光伏发电站选址预测
大数据·hadoop·分布式·数据分析·spark·数据开发
ajax_beijing1 天前
zookeeper是啥
分布式·zookeeper·云原生