-
相关信息 如果您想了解关于RocketMQ的相关概念,请参考RocketMQ基本概念。 RocketMQ实例创建时,如果消费者客户端与生产者客户端无需通过密文传输,那么您可以关闭SSL。此时连接RocketMQ实例生产和消费消息的操作请参见使用客户端连接RocketMQ(关闭SSL)。 如果您需要创建多个用户并为其赋予不同的Topic和消费组权限,以达到用户之间的权限隔离,那么您需要先开启ACL访问控制并配置ACL用户,具体操作请参考开启RocketMQ ACL访问和配置RocketMQ ACL用户。 如果您需要通过公网访问RocketMQ实例,请参见配置RocketMQ实例的公网访问。
-
步骤四:连接RocketMQ实例生产和消费消息 在E
CS 环境中进入“rocketmq-tutorial/bin”目录。 cd rocketmq-tutorial/bin 运行生产普通消息命令。 命令示例如下: JAVA_OPT=-Dtls.enable=true sh mqadmin sendMessage -n "10.xxx.xxx.89:8100;10.xxx.xxx.144:8100" -t Topic01 -p "hello rocketmq" 10.xxx.xxx.89:8100;10.xxx.xxx.144:8100:表示RocketMQ实例的“连接地址”,即11中记录的连接地址。 Topic01:表示RocketMQ实例下创建的Topic名称,即4中创建的Topic名称。 hello rocketmq:表示生产消息的内容,可自定义。 运行消费普通消息命令。 命令示例如下: JAVA_OPT=-Dtls.enable=true sh mqadmin consumeMessage -n "10.xxx.xxx.89:8100;10.xxx.xxx.144:8100" -t Topic01 如上图中BODY显示的内容即为消费消息的内容。 如需停止消费使用Ctrl+C命令退出。
-
步骤二:创建RocketMQ实例 使用RocketMQ进行消息生产和消费时,必须先创建RocketMQ实例。实例中的虚拟机资源会存储Topic信息。 进入购买RocketMQ实例页面。 在“快速购买”页签,设置实例基础配置,如图2所示,配置详情请参考表2。 表2 设置实例基础配置 参数 说明 计费模式 选择“按需计费”,即先使用再付费,按照RocketMQ实例实际使用时长计费,秒级计费,按小时结算。 区域 不同区域的云服务产品之间内网互不相通。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。 选择“华北-北京四”。 可用区 可用区指在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。 选择1个可用区。 图2 设置实例基础配置 设置实例规格和存储空间,如图3所示,配置详情请参考表3。 表3 设置实例规格和存储空间 参数 说明 套餐规格 选择“综合推荐”中的“入门规格”。针对入门级用户,提供兼容RocketMQ协议的基础版小规格实例,适用于性能诉求不高、时延容忍度较高的成本敏感业务或者预发环境等。 存储空间 根据实际需要选择存储RocketMQ数据的磁盘类型和磁盘大小。 RocketMQ实例创建后,磁盘类型不支持修改。 磁盘类型选择“超高I/O”,磁盘大小设置为“200GB”。 图3 设置实例规格和存储空间 设置实例网络环境信息,如图4所示,配置详情请参考表4。 表4 设置实例网络环境信息 参数 说明 虚拟私有云 虚拟私有云在RocketMQ实例创建完成后,不支持修改。 选择准备工作中设置好的虚拟私有云。 子网 子网在RocketMQ实例创建完成后,不支持修改。 选择准备工作中设置好的子网。 安全组 选择准备工作中设置好的安全组。 图4 设置实例网络环境信息 设置实例的访问方式,如图5所示,配置详情请参考表5。 表5 设置实例访问方式 参数 说明 公网访问 开启公网访问需要绑定弹性IP地址。此处选择关闭公网访问。 加密方式 开启SSL,表示服务端与客户端之间通过密文传输,安全性较高,性能较低。此处选择配置为“SSL”。 图5 设置实例访问方式 设置实例高级配置,如图6所示,配置详情请参考表6,其他参数保持默认设置。 表6 设置实例高级配置 参数 说明 实例名称 实例名称支持自定义,但需要符合命名规则:长度为4~64个字符,由英文字母开头,只能由英文字母、数字、中划线、下划线组成。 此处配置为“rocketmq-test”。 企业项目 该参数针对企业用户使用。企业项目是对企业不同项目间资源的分组和管理,属于逻辑隔离。 此处选择“default”。 ACL访问控制 开启ACL访问控制可以对生产消息和消费消息进行权限管理。此处选择关闭ACL访问控制。 标签 标签是RocketMQ实例的标识。此处不设置标签。 描述 描述是对实例的补充说明。此处不填写描述信息。 图6 设置实例高级配置 填写完上述信息后,单击“确认订单”,进入“确认配置”页面。 确认实例信息无误后,勾选“华为云用户协议”,并单击“提交”请求。 在实例列表页面,查看RocketMQ实例是否创建成功。 创建实例大约需要3到15分钟,此时实例的“状态”为“创建中”。 当实例的“状态”变为“运行中”时,说明实例创建成功。 当实例的“状态”变为“创建失败”,请删除创建失败的实例,然后重新创建。如果重新创建仍然失败,请联系客服。 实例创建成功后,单击实例名称,进入实例概览页面。 记录实例的连接地址,便于生产和消费消息时使用。 图7 记录实例连接地址
-
操作流程 图1 RocketMQ使用流程 准备工作。 在创建RocketMQ实例前,您需要完成注册华为云并实名认证、为账户充值、为用户添加操作权限、创建VPC和子网、创建安全组、创建弹性云服务器并配置环境的准备工作。 创建RocketMQ实例。 在创建实例时,您需要开启SSL、关闭ACL,并配置已创建的VPC和子网、安全组。 创建Topic。 在实例创建成功后,您需要创建Topic,用于发送与接收消息。 连接RocketMQ实例生产和消费消息。 使用客户端连接实例,并通过命令行生产消费消息。
-
计费模式概述 分布式消息服务RocketMQ版提供包年/包月和按需计费两种计费模式,以满足不同场景下的用户需求。 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买周期越长,享受的折扣越大。一般适用于业务需求量长期稳定的成熟业务。 按需计费:一种后付费模式,即先使用再付费,按照RocketMQ实例实际使用时长计费,秒级计费,按小时结算。按需计费模式允许您根据实际业务需求灵活地调整资源使用,无需提前预置资源,从而降低预置过多或不足的风险。一般适用于电商抢购等业务需求量瞬间大幅波动的场景。 表1列出了两种计费模式的区别。 表1 计费模式 计费模式 包年/包月 按需计费 付费方式 预付费 按照订单的购买周期结算。 后付费 按照RocketMQ实例实际使用时长计费。 计费周期 按订单的购买周期计费。 秒级计费,按小时结算。 适用计费项 实例费用、存储空间费用 实例费用、存储空间费用 变更计费模式 支持变更为按需计费模式。 但包年/包月计费模式到期后,按需的计费模式才会生效。 包年/包月变更按需计费时,生效时间分为以下两种: 包年/包月资费模式到期后,按需的资费模式才会生效。 提交变更后,按需的资费模式立即生效。 支持变更为包年/包月计费模式。 变更规格 支持变更实例规格。 支持变更实例规格。 回收站中实例是否计费 开启回收站策略的包年/包月实例,退订后会存入回收站中,此时不收取实例费用,但是会按需收取存储空间费用。 从回收站中恢复的包年/包月实例,计费模式会变为按需计费。 开启回收站策略的按需实例,删除后会存入回收站中,此时不收取实例费用,按需收取存储空间费用。 适用场景 适用于可预估资源使用周期的场景。对于长期使用者,推荐该方式,价格比按需计费模式更优惠。 适用于资源需求波动的场景,可以随时开通,随时删除。 父主题: 计费模式
-
适用计费项 分布式消息服务RocketMQ版对您选择的RocketMQ实例和RocketMQ的磁盘存储空间收费。以下计费项支持按需计费。 表1 适用计费项 计费项 说明 实例费用 4.8.0版本的实例费用包括代理规格和代理数量。 5.x基础版和专业版的实例费用包括TPS和部署类型。 存储空间费用 总存储空间的费用。 4.8.0版本时,总存储空间的费用为单个代理的存储空间*代理数量。 弹性TPS费用 5.x专业版时,如果开启弹性TPS功能,则会按照超过实例基础规格TPS上限的增量部分进行计费。 取值为计费周期即1小时内,增量部分TPS的最大值。 假设您计划购买一个4.8.0版本的RocketMQ实例,其存储空间为300GB。在购买RocketMQ实例页面底部,您将看到所需费用的明细,如图1所示。 图1 配置费用示例 配置费用将包括以下部分: 实例费用:根据所选配置(包括代理规格和代理数量)计算的费用。 存储空间费用:磁盘类型和总磁盘存储空间(单个代理的存储空间*代理数量)的费用。
-
计费示例 假设您于2023/04/18 9:59:30在“华北-北京四”区域购买了一个按需计费4.8.0版本的RocketMQ实例(规格:rocketmq.4u8g.cluster.small*1,总存储空间:高I/O 300GB),计费资源包括实例费用(代理规格和代理数量),以及存储空间费用(高I/O 300GB),然后在2023/04/18 10:45:46将其删除,则: 第一个计费周期为9:00:00 ~ 10:00:00,在9:59:30 ~ 10:00:00间产生费用,该计费周期内的计费时长为30秒。 第二个计费周期为10:00:00 ~ 11:00:00,在10:00:00 ~ 10:45:46间产生费用,该计费周期内的计费时长为2746秒。 您需要为每个计费周期付费,各项RocketMQ资源单独计费,计费公式如表2所示。产品价格详情中标出了资源的每小时价格,您需要将每小时价格除以3600,得到每秒价格。 表2 计费公式 资源类型 计费公式 资源单价 实例费用 实例规格单价 * 购买时长 请参见分布式消息服务RocketMQ版价格详情中的“实例价格”。 存储空间费用 存储空间单价 * 购买时长 请参见分布式消息服务RocketMQ版价格详情中的“存储价格”。 图2给出了上述示例配置的费用计算过程。 图中价格仅供参考,实际计算请以分布式消息服务RocketMQ版价格详情中的价格为准。 图2 按需计费RocketMQ实例费用计算示例(华北-北京四区域)
-
计费周期 按需计费RocketMQ实例按秒计费,每一个小时整点结算一次费用(以UTC+8时间为准),结算完毕后进入新的计费周期。计费的起点以RocketMQ实例创建成功的时间点为准,终点以实例删除时间为准。 例如,您在8:45:30购买了一个按需计费的RocketMQ实例,然后在8:55:00将其删除,则计费周期为8:00:00 ~ 9:00:00,在8:45:30 ~ 8:55:30间产生费用,该计费周期内的计费时长为600秒。
-
变更配置后对计费的影响 如果您在购买按需计费实例后变更了实例规格,会产生一个新订单并开始按新规格的价格计费,旧订单自动失效。 如果您在一个小时内变更了实例规格,将会产生多条计费信息。每条计费信息的开始时间和结束时间对应不同规格在该小时内的生效时间。 例如,您在9:00:00购买了一个按需计费实例,实例规格为rocketmq.4u8g.cluster*1,并在9:30:00升配为rocketmq.8u16g.cluster*1,那么在9:00:00 ~ 10:00:00间会产生两条计费信息。 第一条对应9:00:00 ~ 9:30:00,实例规格按照rocketmq.4u8g.cluster*1计费。 第二条对应9:30:00 ~ 10:00:00,实例规格按照rocketmq.8u16g.cluster*1计费。
-
变更计费模式概述 在购买RocketMQ实例后,如果发现当前计费模式无法满足业务需求,您可以变更计费模式。支持变更计费模式的RocketMQ实例计费项如表1所示。 表1 支持变更计费模式的RocketMQ实例计费项 计费项 变更说明 相关文档 实例规格 变更RocketMQ实例的计费模式会同时变更实例规格和存储空间的计费模式。 将RocketMQ实例的计费模式从按需计费转为包年/包月,可以让您享受一定程度的价格优惠。 将RocketMQ实例的计费模式从包年/包月转为按需计费,可以帮助您回收部分成本,并更加灵活地使用RocketMQ资源。 包年/包月计费模式到期后,按需计费模式才会生效。 包年/包月变更按需计费时,生效时间分为以下两种: 包年/包月资费模式到期后,按需的资费模式才会生效。 提交变更后,按需的资费模式立即生效。 按需转包年/包月 包年/包月转按需 存储空间 不支持单独变更计费模式,只能随RocketMQ实例变更计费模式。 按需转包年/包月 包年/包月转按需 父主题: 变更计费模式
-
分布式消息服务RocketMQ版5.x专业版规格 分布式消息服务RocketMQ版5.x专业版产品规格由以下七个维度定义: 资源规格:定义使用的弹性云服务器的规格类型。 磁盘类型:定义存储空间的磁盘类型,包含高I/O、超高I/O、通用型SSD和极速型SSD。 存储容量:定义实例可以保存的存储容量。 实例TPS:定义实例的TPS性能。 弹性TPS:定义实例的弹性TPS。 实例Topic数上限:定义实例可以创建的Topic数量。 实例消费组数上限:定义实例可以创建的消费组数量。 分布式消息服务RocketMQ版5.x专业版支持的产品规格如表4和表5所示。下表中TPS是指以普通消息类型、4KB消息大小为基准计算的每秒收发消息的总条数。如果消息类型为定时消息/延时消息/事务消息,发送消息的调用次数需要在普通消息基础上乘以5,接收消息的调用次数不需要乘以5。例如:每秒发送一条普通消息,TPS为1次/秒。每秒发送一条事务消息,TPS=1*5=5次/秒。 表4 实例规格说明(分布式消息服务RocketMQ版5.x专业版单机) 资源规格 存储容量(GB) 实例TPS 实例Topic数上限 实例消费组数上限 rocketmq.p1.large.1 100 ~ 30000 500 200 500 表5 实例规格说明(分布式消息服务RocketMQ版5.x专业版集群) 资源规格 存储容量(GB) 实例TPS 弹性TPS 实例Topic数上限 实例消费组数上限 rocketmq.p2.large.8 200 ~ 60000 4000 2000 400 1500 rocketmq.p2.large.12 200 ~ 60000 6000 3000 400 1500 rocketmq.p2.large.20 200 ~ 60000 10000 5000 800 1500 rocketmq.p2.large.40 400 ~ 120000 20000 10000 800 1500 rocketmq.p2.large.100 400 ~ 120000 50000 25000 1000 2000 rocketmq.p2.large.150 400 ~ 120000 75000 37500 1000 2000 rocketmq.p2.large.200 800 ~ 240000 100000 50000 1500 4000 rocketmq.p2.large.300 800 ~ 240000 150000 50000 1500 4000
-
分布式消息服务RocketMQ版5.x基础版规格 分布式消息服务RocketMQ版5.x基础版产品规格由以下六个维度定义: 资源规格:定义使用的弹性云服务器的规格类型。 磁盘类型:定义存储空间的磁盘类型,包含高I/O、超高I/O、通用型SSD和极速型SSD。 存储容量:定义实例可以保存的存储容量。 实例TPS:定义实例的TPS性能。 实例Topic数上限:定义实例可以创建的Topic数量。 实例消费组数上限:定义实例可以创建的消费组数量。 分布式消息服务RocketMQ版5.x基础版支持的产品规格如表2和表3所示。下表中TPS是指以普通消息类型、4KB消息大小为基准计算的每秒收发消息的总条数。如果消息类型为定时消息/延时消息/事务消息,发送消息的调用次数需要在普通消息基础上乘以5,接收消息的调用次数不需要乘以5。例如:每秒发送一条普通消息,TPS为1次/秒。每秒发送一条事务消息,TPS=1*5=5次/秒。 表2 实例规格说明(分布式消息服务RocketMQ版5.x基础版单机) 资源规格 存储容量(GB) 实例TPS 实例Topic数上限 实例消费组数上限 rocketmq.b1.large.1 100 ~ 30000 500 50 500 表3 实例规格说明(分布式消息服务RocketMQ版5.x基础版集群) 资源规格 存储容量(GB) 实例TPS 实例Topic数上限 实例消费组数上限 实例连接数上限 rocketmq.b2.large.4 200 ~ 60000 2000 100 1000 4000 rocketmq.b2.large.8 200 ~ 60000 4000 100 1000 4000 rocketmq.b2.large.12 200 ~ 60000 6000 100 1000 6000
-
分布式消息服务RocketMQ版4.8.0规格 分布式消息服务RocketMQ版4.8.0产品规格由以下七个维度定义: 资源规格:定义使用的弹性云服务器的规格类型。 代理个数:定义实例的规模。 磁盘类型:定义存储空间的磁盘类型,包含高I/O、超高I/O、通用型SSD和极速型SSD。 存储容量:定义单个代理可以保存的存储容量。 单个代理TPS:定义单个代理的TPS性能。 单个代理Topic数上限:定义单个代理可以创建的Topic数量。 单个代理消费组数上限:定义单个代理可以创建的消费组数量。 分布式消息服务RocketMQ版4.8.0支持的产品规格如表1所示。 TPS(Transaction per second)是指每秒可以生产消息和消费消息的总次数,可以理解为对应规格每秒生产消息和消费消息的总吞吐量。 表1 实例规格说明(分布式消息服务RocketMQ版4.8.0) 资源规格 代理(个) 存储容量(GB/代理) 单个代理TPS 单个代理Topic数上限 单个代理消费组数上限 rocketmq.4u8g.cluster.small 1 ~ 10 300 ~ 30000 15000 2000 2000 rocketmq.4u8g.cluster 1 ~ 10 300 ~ 60000 20000 4000 4000 rocketmq.8u16g.cluster 1 ~ 10 300 ~ 90000 25000 8000 8000 rocketmq.12u24g.cluster 1 ~ 10 300 ~ 90000 28000 12000 12000 rocketmq.16u32g.cluster 1 ~ 10 300 ~ 90000 30000 16000 16000
-
与Kafka、RabbitMQ的差异 表1 功能差异 功能项 RocketMQ Kafka RabbitMQ 优先级队列 不支持 不支持 3.x.x版本:支持。建议优先级大小设置在0-10之间。 AMQP-0-9-1版本:支持。优先级大小设置在1-9之间。 延迟队列 支持 不支持 3.x.x版本:不支持。 AMQP-0-9-1版本:支持。 死信队列 支持 不支持 支持 消息重试 支持 不支持 3.x.x版本:不支持。 AMQP-0-9-1版本:支持。 消费模式 支持客户端主动拉取和服务端推送两种方式。 客户端主动拉取。 支持客户端主动拉取和服务端推送两种模式。 广播消费 支持 支持 支持 消息回溯 支持 支持。Kafka支持按照offset和timestamp两种维度进行消息回溯。 3.x.x版本:不支持。RabbitMQ中消息一旦被确认消费就会被标记删除。 AMQP-0-9-1版本:支持。 消息堆积 支持 支持。考虑吞吐因素,Kafka的堆积效率比RabbitMQ总体上要高。 支持 持久化 支持 支持 支持 消息追踪 支持 不支持 3.x.x版本:不支持。 AMQP-0-9-1版本:支持。 消息过滤 支持 支持 3.x.x版本:不支持,但可以自行封装。 AMQP-0-9-1版本:支持。 多租户 支持 支持 支持 多协议支持 兼容RocketMQ协议。 只支持Kafka自定义协议。 RabbitMQ基于AMQP协议实现。 跨语言支持 支持多语言的客户端。 采用Scala和Java编写,支持多种语言的客户端。 支持多种语言的客户端。 流量控制 RocketMQ 5.x支持基于实例规格的流量控制。 支持client、user和Topic级别,通过主动设置可将流控作用于生产者或消费者。 RabbitMQ的流控基于Credit-Based算法,是内部被动触发的保护机制,作用于生产者层面。 消息顺序性 单队列(queue)内有序。 支持单分区(partition)级别的顺序性。 单线程发送、单线程消费并且不采用延迟队列、优先级队列等一些高级功能时,才能实现消息有序。 安全机制 支持SSL认证。 支持SSL、SASL身份认证和读写权限控制。 3.x.x版本:支持SSL认证。 AMQP-0-9-1版本:支持ACL访问控制。 事务性消息 支持 支持 支持
-
消费组 表3 消费组约束与限制 限制项 约束与限制 创建消费组的数量 消费组的数量根据产品规格确定,不支持修改。 当消费组的数量达到上限后,您无法继续创建消费组。 是否需要创建消费组、消费者、生产者 不需要单独创建消费组、生产者和消费者,在使用时自动生成,实例创建后,直接使用即可。 消费位点重置 支持重置消费2天内任意时间点的消息。 重置消费进度 重置消费进度可能会导致重复消费。 代理故障场景 实例中部分代理故障时,无法创建、修改和删除消费组,只能查询消费组。