分布式消息服务 RocketMQ 版
产品介绍
文档版本 01
发布日期 2022-02-23
华为技术有限公司
版权所有 © 华为技术有限公司 2022。 保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传 播。
商标声明
和其他华为商标均为华为技术有限公司的商标。
本文档提及的其他所有商标或注册商标,由各自的所有人拥有。
注意
您购买的产品、服务或特性等应受华为公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或 特性可能不在您的购买或使用范围之内。除非合同另有约定,华为公司对本文档内容不做任何明示或暗示的声 明或保证。
由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文 档中的所有陈述、信息和建议不构成任何明示或暗示的担保。
目 录
1 什么是分布式消息服务 RocketMQ 版... 1
2 产品优势...3
3 典型应用场景... 4
4 产品规格...7
5 与 Kafka、RabbitMQ 专享版的差异...8
6 与开源 RocketMQ 的差异... 10
7 约束与限制...11
8 与其他云服务的关系... 12
9 RocketMQ 相关概念... 13
10 权限管理... 14
11 计费说明... 16
产品介绍 目 录
文档版本 01 (2022-02-23) 版权所有 © 华为技术有限公司 ii
1 什么是分布式消息服务 RocketMQ 版
分布式消息服务RocketMQ版是一个低延迟、弹性高可靠、高吞吐、动态扩展、便捷多 样的消息中间件服务。
分布式消息服务RocketMQ版具体如下特点:
● 兼容开源RocketMQ客户端。
● 提供顺序、延迟、定时、重投、死信、事务消息等功能,更好的适配电商、金融 等多样的业务场景。
● 提供消息追踪、消息溯源、链路诊断、死信导出、监控告警等能力,帮助您全方 面的了解服务状况,保证业务正常运行。
支持的消息类型
分布式消息服务RocketMQ版支持4种消息类型。
● 普通消息:没有特殊功能的消息,区别于延迟消息、顺序消息和事务消息。
● 延迟消息:生产者生产消息到分布式消息服务RocketMQ版后,消息不会立即被消 费,而是延迟到特定时间后才会发送给消费者进行消费。
● 顺序消息:消费者按照消息发送的顺序来消费消息。
● 事务消息:提供类似X/Open XA的分布事务功能,通过事务消息能达到分布式事 务的最终一致。
支持的高级特性
分布式消息服务RocketMQ版支持2种高级特性。
● 消息过滤:消费者根据分布式消息服务RocketMQ版设置的标签对已订阅Topic中 的消息进行过滤,达到只消费需要的消息的目的。
● 消息重试:消费者消费某条消息失败后,分布式消息服务RocketMQ版根据重试机 制将消息重新发送给消费者进行消费。如果重试次数到达设定的最大值时,消息 尚未被成功消费,此消息将被发送到死信队列。
产品介绍 1 什么是分布式消息服务 RocketMQ 版
表1-1 消息重试机制
消息类型 重试时间间隔 最大重试次数
顺序消息 通过
“suspendTimeMillis”
设置重试时间间隔。
默认值为1000ms,即 1s。
创建消费组时设置。
取值范围:1-16。
普通消息/延迟消息/事务 消息
重试时间间隔根据重试 次数阶梯变化,如表1-2 所示。
创建消费组时设置。
取值范围:1-16。
表1-2 普通消息/延迟消息/事务消息重试时间间隔
重试次数 与上次的间隔时间 重试次数 与上次的间隔时间
1 10s 9 7min
2 30s 10 8min
3 1min 11 9min
4 2min 12 10min
5 3min 13 20min
6 4min 14 30min
7 5min 15 1h
8 6min 16 2h
产品介绍 1 什么是分布式消息服务 RocketMQ 版
文档版本 01 (2022-02-23) 版权所有 © 华为技术有限公司 2
2 产品优势
分布式消息服务RocketMQ版具有如下产品优势,旨在打造一个即开即用、全托管、低 延迟、弹性高可靠、动态扩展、便捷管理和多样功能的消息队列。
● 即开即用:简单几步即可在云上构建自己专属的消息服务,RocketMQ实例创建完 成后,使用实例提供的访问地址即可快速接入。兼容开源RocketMQ,业务代码无 需改造,即可上云。
● 全托管服务:分布式消息服务RocketMQ版提供自动部署与完备的运维系统和售后 服务,提供包括监控告警在内的多种运维手段,业务无需过多关注分布式消息服 务RocketMQ版的部署与运维工作,可以专注于自身业务的开发。
● 低延迟:基于华为云网络部署,在内网访问可达微秒级时延。
● 弹性高可靠:基于Raft协议实现集群内部节点的管理,及时发现故障节点并进行 流量迁移,保证业务的连续性可靠。
● 动态扩展(暂不支持):提供业务集群动态扩缩容的能力,根据业务需要动态变 更集群规模。业务促销时适当进行集群扩容,促销结束后恢复集群。
● 便捷管理:提供监控告警、消息追踪等多样的监控定位手段,方便问题定位和日 常维护。
● 多样功能:提供顺序延迟、定时、重投、死信、过滤和事务消息等多样的业务功 能,适配多样化的业务场景。
产品介绍 2 产品优势
3 典型应用场景
电商应用
电商应用存在诸多难题:
● 电商场景中通常会涉及到订单、支付和通知等等场景的业务处理。业务链通常都 是多个系统相互协作完成一次作业,上层服务强依赖于下层服务,上层服务的性 能会强依赖于下层服务,当业务链过深,则会严重影响外层服务的性能和用户体 验。
● 在电商促销活动中,需要用户拥有订阅通知的能力。
分布式消息服务RocketMQ版为搭建电商系统提供了更多的选择。
● 分布式消息服务RocketMQ版可以解除多个业务系统之间的耦合度,提升各系统的 处理能力和响应速度。
● 分布式消息服务RocketMQ版提供的定时、延迟等能力,满足需要订阅通知的电商 场景。
产品介绍 3 典型应用场景
文档版本 01 (2022-02-23) 版权所有 © 华为技术有限公司 4
金融场景
相较于传统金融场景,互联网金融需要能及时响应互联网的快速变化。传统金融场景 中共性的部分需要被抽取出来,进行细化为各个不同的微服务模块,构成基础的业务 中台,基于业务中台提供的基本能力,用户可以在上层快速的构建多样的业务能力。
而分布式消息服务RocketMQ版因其优秀的解耦链接能力,增强了各微服务模块的处理 能力和响应速度,在业务中台内扮演着不可或缺的角色。
IoT 场景
IoT场景典型特点为海量终端接入,在大量终端接入的情况下,大量的数据汇聚在一 起,实际不同的业务组件需要关注的信息只是其中某些类型的数据,如何在大量数据 中快速识别出业务感兴趣的数据将会显得尤为重要。分布式消息服务RocketMQ版提供 的消息过滤的能力,可以完好的支持该场景,终端写入时为消息添加标签,指定该消 息的类型,业务端消费时则可以指定只消费特定类型的标签,从而实现更好的业务处 理。
产品介绍 3 典型应用场景
产品介绍 3 典型应用场景
文档版本 01 (2022-02-23) 版权所有 © 华为技术有限公司 6
4 产品规格
分布式消息服务RocketMQ版产品规格由以下五个维度定义:
● 资源规格:定义使用的弹性云服务器的规格类型。
● 代理个数:定义实例的规模。
● 存储容量:定义实例可以保存的存储数量。
● 单个代理TPS:定义实例的TPS性能。
● 单个代理队列数上限:定义实例可以创建的队列数量。
支持的产品规格如表1 规格定义所示。
表4-1 实例规格说明
资源规格 代理
(个) 存储容量(GB/
代理) 单个代理TPS 单个代理队列数 上限
C6.4u8g.cluster 1 ~ 10 600 ~ 270000 20000 4000 C6.8u16g.cluster 1 ~ 10 1200 ~ 270000 25000 8000 C6.12u24g.cluste
r 1 ~ 10 1800 ~ 270000 28000 12000 C6.16u32g.cluste
r 1 ~ 10 2400 ~ 270000 30000 16000
须知
公测实例与商用实例存在差距,公测实例不推荐用于商用业务,公测实例不支持转包 周期,建议已有公测实例的用户删除公测实例,购买新的商用实例。
产品介绍 4 产品规格
5 与 Kafka、RabbitMQ 专享版的差异
功能项 RocketMQ Kafka RabbitMQ
优先级队列 不支持 不支持 支持。建议优先级大小设置在
0-10之间。
延迟队列 支持 不支持 支持
死信队列 支持 不支持 支持
消息重试 支持 不支持 不支持
消费模式 支持客户端主动拉取和 服务端推送两种方式
客户端主动拉取 支持客户端主动拉取以及服务 端推送两种模式
广播消费 支持 支持 支持
消息回溯 支持 支持。Kafka支持按照
offset和timestamp两种 维度进行消息回溯。
不支持。RabbitMQ中消息一 旦被确认消费就会被标记删 除。
消息堆积 支持 支持。考虑吞吐因素,
Kafka的堆积效率比 RabbitMQ总体上要高。
支持
持久化 支持 支持 支持
消息追踪 支持 不支持 支持。RabbitMQ中可以采用
Firehose或者
rabbitmq_tracing插件实现,
但开启rabbitmq_tracing插件 会影响性能,建议只在定位问 题过程中开启。
消息过滤 支持 支持 不支持,但可以自行封装。
多租户 支持 不支持 支持
多协议支持 兼容RocketMQ协议 只支持Kafka自定义协
议。 RabbitMQ基于AMQP协议实 现,同时支持MQTT、STOMP 等协议。
产品介绍 5 与 Kafka、RabbitMQ 专享版的差异
文档版本 01 (2022-02-23) 版权所有 © 华为技术有限公司 8
功能项 RocketMQ Kafka RabbitMQ 跨语言支持 支持多语言的客户端 采用Scala和Java编写,
支持多种语言的客户端。 采用Erlang编写,支持多种语 言的客户端。
流量控制 待规划 支持client和user级别,
通过主动设置可将流控作 用于生产者或消费者。
RabbitMQ的流控基于Credit- Based算法,是内部被动触发 的保护机制,作用于生产者层 面。
消息顺序性 单队列(queue)内有
序 支持单分区(partition)
级别的顺序性。
不支持。需要单线程发送、单 线程消费并且不采用延迟队 列、优先级队列等一些高级功 能整体配合,才能实现消息有 序。
安全机制 支持SSL认证 支持SSL、SASL身份认证 和读写权限控制。
与Kafka相似
事务性消息 支持 支持 支持
产品介绍 5 与 Kafka、RabbitMQ 专享版的差异
6 与开源 RocketMQ 的差异
分布式消息服务RocketMQ版在兼容开源RocketMQ基础上,对版本特性做了一定程度 的定制和增强。
表6-1 分布式消息服务 RocketMQ 版与开源 RocketMQ 的差异说明 功能项 分布式消息服务RocketMQ
版 开源RocketMQ
延迟消息 支持 支持
顺序消息 支持 支持
消息重试 支持 支持
死信消息 支持 支持
集群消费 支持 支持
广播消费 支持 支持
死信队列 支持 支持
消费重置 支持 支持
消息查询 支持 支持
加密传输 支持 支持
消息轨迹 支持 支持
事务消息 支持 支持
死信导出 支持 不支持
动态规格变更 待规划 不支持
链路诊断 待规划 不支持
数据转储 待规划 不支持
产品介绍 6 与开源 RocketMQ 的差异
文档版本 01 (2022-02-23) 版权所有 © 华为技术有限公司 10
7 约束与限制
本章主要为您介绍分布式消息服务RocketMQ版使用过程中的一些限制。
表7-1 分布式消息服务 RocketMQ 版使用限制明细
限制项 默认限制 能否修改
创建Topic的数量 Topic的数量根据实例规格确定。
当Topic的数量达到上限后,您无法继续 创建Topic。
x
创建消费组的数量 消费组的数量根据实例规格确定。
当消费组的数量达到上限后,您无法继 续创建消费组。
x
产品介绍 7 约束与限制
8 与其他云服务的关系
● 虚拟私有云(Virtual Private Cloud)
RocketMQ实例运行于虚拟私有云,需要使用虚拟私有云创建的IP和带宽。通过虚 拟私有云安全组的功能可以增强访问RocketMQ实例的安全性。
● 云监控(Cloud Eye)
云监控是一个开放性的监控平台,提供资源的实时监控、告警、通知等服务。
● 云审计(Cloud Trace Service)
云审计为您提供云服务资源的操作记录,记录内容包括您从华为云管理控制台或 者开放API发起的云服务资源操作请求以及每次请求的结果,供您查询、审计和回 溯使用。
产品介绍 8 与其他云服务的关系
文档版本 01 (2022-02-23) 版权所有 © 华为技术有限公司 12
9 RocketMQ 相关概念
主题(Topic)
消息关联的基础逻辑单元。消息生产与消费时的基础单位。
队列(Queue)
一个主题由多个队列组成。队列数越大消费的并发度越大。
生产者(Producer)
消息写入的触发者,负责将消息推送到服务端。
消费者(Consumer)
接收消息的对象,负责从服务端获取消息。
消费组(Consumer Group)
多个消费者组成同一个消费组,同一消费组内的消费者具有相同的消费属性。
代理(Broker)
一组节点构成的一个业务集群。1个代理由1个master和2个slave组成。
产品介绍 9 RocketMQ 相关概念
10 权限管理
如果您需要对华为云上购买的DMS for RocketMQ资源,给企业中的员工设置不同的 访问权限,以达到不同员工之间的权限隔离,您可以使用统一身份认证服务(Identity and Access Management,简称IAM)进行精细的权限管理。该服务提供用户身份认 证、权限分配、访问控制等功能,可以帮助您安全的控制华为云资源的访问。
通过IAM,您可以在华为云帐号中给员工创建IAM用户,并授权控制他们对华为云资源 的访问范围。例如您的员工中有负责软件开发的人员,您希望他们拥有DMS for RocketMQ的使用权限,但是不希望他们拥有删除RocketMQ实例等高危操作的权限,
那么您可以使用IAM为开发人员创建用户,通过授予仅能使用DMS for RocketMQ,但 是不允许删除RocketMQ实例的权限策略,控制他们对DMS for RocketMQ资源的使用 范围。
如果华为云帐号已经能满足您的要求,不需要创建独立的IAM用户进行权限管理,您 可以跳过本章节,不影响您使用DMS for RocketMQ的其它功能。
IAM是华为云提供权限管理的基础服务,无需付费即可使用,您只需要为您帐号中的 资源进行付费。关于IAM的详细介绍,请参见《IAM产品介绍》。
说明
DMS for RocketMQ的权限与策略基于分布式消息服务DMS,因此在IAM服务中为DMS for RocketMQ分配用户与权限时,请选择并使用“DMS”的权限与策略。
DMS for RocketMQ 权限
默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户 组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。
授权后,用户就可以基于被授予的权限对云服务进行操作。
DMS for RocketMQ部署时通过物理区域划分,为项目级服务。授权时,“作用范 围”需要选择“区域级项目”,然后在指定区域(如华北-北京1)对应的项目(cn- north-1)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置 权限,则该权限在所有区域项目中都生效。访问DMS for RocketMQ时,需要先切换 至授权区域。
如表10-1所示,包括了DMS for RocketMQ的所有系统权限。
产品介绍 10 权限管理
文档版本 01 (2022-02-23) 版权所有 © 华为技术有限公司 14
表10-1 DMS for RocketMQ 系统权限
系统角色/策略名称 描述 依赖关系
DMS Administrator 分布式消息服务的管理员权限。 无
相关链接
● IAM产品介绍
● 创建用户组、用户并授予DMS for RocketMQ权限
产品介绍 10 权限管理
11 计费说明
分布式消息服务RocketMQ版支持按需和包周期两种付费模式。具体收费介绍,请参考 价格详情。
计费项
分布式消息服务RocketMQ版的费用计算分为两部分,一部分为实例费用,一部分为存 储空间费用。
表11-1 分布式消息服务 RocketMQ 版计费项
计费项 计费说明
实例费用 ● 对您选择的实例规格计费,具体请参见表11-2。
● RocketMQ实例提供包年包月和按需(小时)计费方式。
存储空间费用 ● 对您选择的实例存储空间计费(每个实例规格您都可以选择 高IO和超高IO两种不同的云硬盘类型以满足您的业务需 求)。
● 存储空间范围见表11-2,步长100GB。
● 实例存储提供包年包月和按需(小时)计费方式。
表11-2 实例规格说明
资源规格 代理
(个)
存储容量(GB/
代理)
单个代理TPS 单个代理队列数 上限
C6.4u8g.cluster 1 ~ 10 600 ~ 270000 20000 4000 C6.8u16g.cluster 1 ~ 10 1200 ~ 270000 25000 8000 C6.12u24g.cluste
r 1 ~ 10 1800 ~ 270000 28000 12000 C6.16u32g.cluste
r 1 ~ 10 2400 ~ 270000 30000 16000
产品介绍 11 计费说明
文档版本 01 (2022-02-23) 版权所有 © 华为技术有限公司 16
计费模式
提供按小时、按月、按年的计费方式供您灵活选择,使用越久越便宜。
● 预付费(包年包月):这种购买方式相对于按需付费提供更大的折扣,对于长期 使用者,推荐该方式。
● 按需付费(小时):这种购买方式比较灵活,可以即开即停,按实际使用时长计 费。以自然小时为单位整点计费,不足一小时按一小时计费。
续费
为防止资源到期或者浪费,已经购买包年/包月实例的用户,可执行续费操作,延长资 源包的有效期,也可以设置到期自动续费。续费的相关操作,请参考续费管理。
产品介绍 11 计费说明