RabbitMQ-基本概念

简介: RabbitMQ-基本概念

RabbitMQ:

使用场景:

异步通信、顺序消费、定时任务、请求削峰


核心组件:

1、Broker

(消息队列服务器实体)

2、Exchange

(消息交换机)

3、Queue

(消息队列载体)

4、Binding

(绑定,把Exchange和Queue按照路由规则绑定)

5、Routing Key

(路由关键字,Exchange根据关键字进行消息投递)

6、V Host

(虚拟的Broker,为TCP虚拟连接,可以有多个。 Mini-RabbitMQ Server,有独立的2、3、4)v host 可以作为不同权限隔离的手段

7、Producer

(消息生产者):同步,异步,单向

8、Consumer

(消息消费者)

9、Channel

(消息通道,客户端的每个连接李,可建立多个channel,每个代表一个回话任务)

由Exchange、Queue、RoutingKey三个才能决定一个从Exchange到Queue的唯一的线路。


RabbitMQ工作模式:

1、Simple(收发模式):

Producer产生消息放入队列,Consumer监听并消费,需要设置手动ack防止消息丢失,但需要注意及时发送ack,否则会造成内存溢出。

2、Work(资源竞争):

Producer产生消息放入队列,多个Consumer监听并消费,先到先得。需要设置一个开关(Syncronize)保证一对一。否则会一个被多用。

3、Publish/subscribe发布订阅(共享资源):

Consumer监听自己的队列,生产消息给broke,由Exchange转发到绑定此交换机的每个队列,都能接收到消息

4、routing路由模式:

Producer将消息发送给Producer,Producer根据Routing key有选择的转发消息到匹配的queue

5、topic主体模式(路由模式的一种):

添加了模糊匹配(通配符*(多个)、#(单个))


如何保证RabbitMQ消息的顺序性

1、拆分多个queue,每个queue一个consumer,多个queue,麻烦

2、就一个queue对应一个consumer,在consumer内部用内存队列做排队,分发给底层不同的worker处理


消息的分发机制:

1、默认轮询,当出现处理速度快慢不一致时,会出现处理速度快的空闲状态。

2、不公平分发,能者多劳

3、预值分发,预值满时停止发送,除非ack确认后。


消息怎么路由:

消息提供方→路由→一个或多个消息发布到交换器时,消息拥有一个路由键,在消息创建时设定。通过队列路由键,可以把队列绑定到交换器上。消息到达交换器后,

RabbitMQ 会将消息的路由键与队列的路由键进行匹配(针对不同的交换器有不同的路由规则)


消息路由:

1、Fanout:收到消息,广播到所有绑定的队列上

2、Direct:路由键完全匹配,投递到相应的队列上

3、Topic:不同来源到同一个队列,支持通配符


消息持久化:

  消息发送之前写入磁盘上的持久化日志文件中,消费后把消息标记为等待垃圾收集状态,如果被消费之前重启,将自动重建交换器和队列,重新发布日志文件中的消息

消息基于什么传输:

  使用信道的方式传输数据,信道建立在真实的TCP连接内的虚拟连接,且每条TCP连接上的信道数量没有限制
  TCP方式开销大,且并发数受系统资源限制,会造成性能瓶颈。
相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
7月前
|
消息中间件 中间件 数据安全/隐私保护
RabbitMQ 的核心概念
RabbitMQ 的核心概念
44 2
|
4月前
|
消息中间件 存储 网络协议
消息中间件RabbitMQ---概述和概念 【一】
该文章提供了对消息中间件RabbitMQ的全面概述,包括其核心概念、工作原理以及与AMQP和JMS的关系。
消息中间件RabbitMQ---概述和概念 【一】
|
5月前
|
消息中间件 负载均衡 算法
【RocketMQ系列十二】RocketMQ集群核心概念之主从复制&生产者负载均衡策略&消费者负载均衡策略
【RocketMQ系列十二】RocketMQ集群核心概念之主从复制&生产者负载均衡策略&消费者负载均衡策略
146 2
|
5月前
|
消息中间件 NoSQL 关系型数据库
【RocketMQ系列十三】RocketMQ的集群核心概念之消费重试&死信队列&幂等消息的出现以及处理
【RocketMQ系列十三】RocketMQ的集群核心概念之消费重试&死信队列&幂等消息的出现以及处理
155 1
|
5月前
|
消息中间件 存储 RocketMQ
【RocketMQ系列十】RocketMQ的核心概念说明
【RocketMQ系列十】RocketMQ的核心概念说明
82 1
|
6月前
|
消息中间件 存储 中间件
【主流技术】聊一聊消息队列 RocketMQ 的基本结构与概念
2.6Broker 代理服务器(Broker)是消息中转角色,负责存储消息、转发消息。代理服务器在 RocketMQ 系统中负责接收从生产者发送来的消息并存储、同时为消费者的拉取请求作准备。代理服务器也存储消息相关的元数据,包括消费者组、消费进度偏移和主题和队列消息等。 2.7Pull Consumer 拉取式消费(Pull Consumer)是 Consumer 消费的一种类型,也是默认的类型。下游应用系统通常主动调用 Consumer 的拉消息方法从 Broke r服务器拉消息,即主动权由下游应用控制。一旦获取了批量消息,应用就会启动消费过程。
|
6月前
|
消息中间件 存储 物联网
RocketMQ基础概念
RocketMQ基础概念
63 1
|
7月前
|
消息中间件 存储 Apache
RocketMQ实战教程之常见概念和模型
Apache RocketMQ 实战教程介绍了其核心概念和模型。消息是基本的数据传输单元,主题是消息的分类容器,支持字节、数字和短划线命名,最长64个字符。消息类型包括普通、顺序、事务和定时/延时消息。消息队列是实际存储和传输消息的容器,是主题的分区。消费者分组是一组行为一致的消费者的逻辑集合,也有命名限制。此外,文档还提到了一些使用约束和建议,如主题和消费者组名的命名规则,消息大小限制,请求超时时间等。RocketMQ 提供了多种消息模型,包括发布/订阅模型,有助于理解和优化消息处理。
|
7月前
|
消息中间件 Java API
RabbitMQ(基础概念, 简单使用)(下)
RabbitMQ(基础概念, 简单使用)
56 0
|
7月前
|
消息中间件 存储 Java
RabbitMQ(基础概念, 简单使用)(中)
RabbitMQ(基础概念, 简单使用)
39 0