RocketMQ核心概念(翻译)

简介: 核心概念

rmq_model
根据上面的模型,我们可以深挖关于消息系统设计的一些主题:

  • 消费组并发性
  • 消费者热点问题
  • 消费者负载均衡
  • 消息路由
  • 连接多路复用
  • 金丝雀部署

生产者

生产者将业务应用产生的消息发送到broker。生产者提供多种发送模式:同步,异步和单向。

生产者群组

相同角色的多个生产者组合在一起。如果原始生产者事物之后崩溃,broker联系同一生产者组内的不同生产者实例提交或回滚事务。

注意

考虑到提供的生产者在发送消息方面足够强大,每个生产者组只允许一个生产者实例,以避免多余的生产者实例初始化。

消费者

消费者从brokers拉去消息和将它们给应用。从用户应用角度,提供了两种消费者:

pull消费者

pull消费者主动从broker获取消息。一旦批量的消息被取回,用户应用开始消费处理。

push消费者

另一方面,push消费组封装消息拉取,消费进度和维护其他内部工作,为最终用户留下回调接口,实现在消息到达时执行。

消费者群组

类似前面提到的生产者群组,同样角色的消费者组合在一起称为消费者群组。

消费者群组是一个很好的概念,在消息消费方面,达到负载均衡和容错是很容易的。

注意

消费者群组的消费者必须拥有相同的主题订阅。

主题

主题是生产者发送消息和消费者提取消息的一种分类。主题与生产者和消费者的关系很松散。更具体的说,一个主题可能那个有0,1或多个生产者向其发送信息;相反,一个消费组可以发送不同主题的消息。从消费者来看,一个主题可能被0,1或多个消费组群组订阅。类似,一个消费者群组可能订阅一个或多个主题,只要该组的实例一直保持它们的订阅。

消息

被投递的信息称为消息。一个消息必需有一个主题,它可以被理解为信件可以邮寄到的地址。一个消息也可以有可选的标签和额外的键值对。例如,你可以给消息设置一个业务键,并在broker上查找本消息来诊断开发中的问题。

消息队列

消息队列,主题被分为一个或多个子主题。

标签

标签,也可以称为子主题,为用户提供了更多的灵活性。来自于同一业务模型的不同用途的消息可以有相同的主题和不同的标签。标签对于保持代码清晰和连贯是非常有帮助的,并且标签同样可以促进RocketMQ提供的查询系统。

代理broker

Broker是RocketMQ系统非常重要的组件。它接收来自于生产者的消息,存储消息并准本处理来自消费者的pull请求。它同样存储与消息相关的元数据,包括消费组群组,消费进度偏移量和主题/队列信息。

name server

name server作为信息信息提供者。生产者/消费组客户端通过主题来发现相应的broker列表。

消息模型

  • 集群
  • 广播

消息顺序

使用DefaultMQPushConsumer时,你可以决定串行或并行消费消息。

串行

串行消费消息意味着,消息消费与生产者为每个消息队列发送的消息有相同的顺序。如果强制方案是处理顺序的全局性,请确保使用的主题只有一个消息队列。

警告:

如果指定串行消费,消息消费的最大并行数 就是消费者群组订阅消费队列的数量。

并行

并行消费消息时,消息消费的最大并行数只受限于每个消费者客户端指定的线程池。

警告:

此模式不保证消息的顺序。

相关实践学习
消息队列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 的核心概念
43 2
|
4月前
|
消息中间件 存储 网络协议
消息中间件RabbitMQ---概述和概念 【一】
该文章提供了对消息中间件RabbitMQ的全面概述,包括其核心概念、工作原理以及与AMQP和JMS的关系。
消息中间件RabbitMQ---概述和概念 【一】
|
5月前
|
消息中间件 负载均衡 算法
【RocketMQ系列十二】RocketMQ集群核心概念之主从复制&生产者负载均衡策略&消费者负载均衡策略
【RocketMQ系列十二】RocketMQ集群核心概念之主从复制&生产者负载均衡策略&消费者负载均衡策略
142 2
|
5月前
|
消息中间件 NoSQL 关系型数据库
【RocketMQ系列十三】RocketMQ的集群核心概念之消费重试&死信队列&幂等消息的出现以及处理
【RocketMQ系列十三】RocketMQ的集群核心概念之消费重试&死信队列&幂等消息的出现以及处理
148 1
|
5月前
|
消息中间件 存储 RocketMQ
【RocketMQ系列十】RocketMQ的核心概念说明
【RocketMQ系列十】RocketMQ的核心概念说明
78 1
|
6月前
|
消息中间件 存储 中间件
【主流技术】聊一聊消息队列 RocketMQ 的基本结构与概念
2.6Broker 代理服务器(Broker)是消息中转角色,负责存储消息、转发消息。代理服务器在 RocketMQ 系统中负责接收从生产者发送来的消息并存储、同时为消费者的拉取请求作准备。代理服务器也存储消息相关的元数据,包括消费者组、消费进度偏移和主题和队列消息等。 2.7Pull Consumer 拉取式消费(Pull Consumer)是 Consumer 消费的一种类型,也是默认的类型。下游应用系统通常主动调用 Consumer 的拉消息方法从 Broke r服务器拉消息,即主动权由下游应用控制。一旦获取了批量消息,应用就会启动消费过程。
|
6月前
|
消息中间件 存储 物联网
RocketMQ基础概念
RocketMQ基础概念
62 1
|
7月前
|
消息中间件 存储 Apache
RocketMQ实战教程之常见概念和模型
Apache RocketMQ 实战教程介绍了其核心概念和模型。消息是基本的数据传输单元,主题是消息的分类容器,支持字节、数字和短划线命名,最长64个字符。消息类型包括普通、顺序、事务和定时/延时消息。消息队列是实际存储和传输消息的容器,是主题的分区。消费者分组是一组行为一致的消费者的逻辑集合,也有命名限制。此外,文档还提到了一些使用约束和建议,如主题和消费者组名的命名规则,消息大小限制,请求超时时间等。RocketMQ 提供了多种消息模型,包括发布/订阅模型,有助于理解和优化消息处理。
|
7月前
|
消息中间件 Java API
RabbitMQ(基础概念, 简单使用)(下)
RabbitMQ(基础概念, 简单使用)
55 0
|
7月前
|
消息中间件 存储 Java
RabbitMQ(基础概念, 简单使用)(中)
RabbitMQ(基础概念, 简单使用)
38 0