云服务器内容精选

  • 支持的高级特性 分布式消息服务RocketMQ版支持4种高级特性。 消息过滤:消费者根据分布式消息服务RocketMQ版设置的标签对已订阅Topic中的消息进行过滤,达到只消费需要的消息的目的。 消息重试:消费者消费某条消息失败后,分布式消息服务RocketMQ版根据重试机制将消息重新发送给消费者进行消费。如果重试次数到达设定的最大值时,消息尚未被成功消费,此消息将被发送到死信队列。 分布式消息服务RocketMQ版的重试机制如表1所示。 表1 消息重试机制 消费类型 重试时间间隔 最大重试次数 顺序消费 通过suspendTimeMillis设置重试时间间隔。 默认值为1000ms,即1s。 通过消费者的setMaxReconsumeTimes函数配置最大重试次数。若未设置参数值,默认为无限重试。 普通消费 重试时间间隔根据重试次数阶梯变化,如表2所示。 创建消费组时设置。 取值范围:1-16。 表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 延时消息:生产者生产消息到分布式消息服务RocketMQ版后,消息不会立即被消费,而是延迟固定时间后才会发送给消费者进行消费。生产者可以指定18个延时等级,每个延时等级对应的时间如表3所示。 表3 延时等级 延时等级 延时时间 延时等级 延时时间 1 1s 10 6min 2 5s 11 7min 3 10s 12 8min 4 30s 13 9min 5 1min 14 10min 6 2min 15 20min 7 3min 16 30min 8 4min 17 1h 9 5min 18 2h 定时消息:生产者生产消息到分布式消息服务RocketMQ版后,消息不会立即被消费,而是延迟到设定的时间点后才会发送给消费者进行消费。分布式消息服务RocketMQ版支持任意时间的定时消息,最大推迟时间可达到1年。同时也支持定时消息的取消。 2022年3月30日及以后购买的实例支持定时消息功能,在此之前购买的实例不支持此功能。
  • 支持的消息类型 分布式消息服务RocketMQ版支持4种消息类型。 普通消息:没有特殊功能的消息,区别于延迟消息、顺序消息和事务消息。 延迟消息/定时消息:生产者生产消息到分布式消息服务RocketMQ版后,消息不会立即被消费,而是延迟到特定时间后才会发送给消费者进行消费。 顺序消息:消费者按照消息发送的顺序来消费消息。 事务消息:提供类似X/Open XA的分布事务功能,通过事务消息能达到分布式事务的最终一致。
  • 产品架构 图1 产品架构示意图(以4.8.0版本为例) 示意图说明: Broker:负责接收和存储Producer发送的消息,或者转发消息到Consumer。一个Broker由一个主节点和两个备节点组成。 NameServer:负责接收和存储Broker中的元数据。 Producer:从NameServer获取元数据,然后将消息发送到Broker。 Consumer:从NameServer获取元数据,然后从Broker拉取消息。
  • 分布式消息服务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版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
  • 分布式消息服务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
  • 细粒度授权 使用自定义细粒度策略,请使用管理员用户登录 IAM 控制台,按需选择DMS的细粒度权限进行授权操作。DMS for RocketMQ细粒度权限依赖说明请参见表3。 表3 DMS for RocketMQ细粒度权限依赖说明 权限名称 权限描述 权限依赖 dms:instance:list 查看实例列表 无 dms:instance:get 查看实例详情信息 无 dms:instance:create 创建实例 vpc:vpcs:get vpc:ports:create vpc:securityGroups:get vpc:ports:get vpc:subnets:get vpc:vpcs:list vpc:publicIps:get vpc:publicIps:list vpc:ports:update vpc:publicIps:update vpc:ports:delete dms:instance:getBackgroundTask 查看实例后台任务详情 无 dms:instance:deleteBackgroundTask 删除实例后台任务 无 dms:instance:modify 修改实例 vpc:vpcs:get vpc:ports:create vpc:securityGroups:get vpc:ports:get vpc:subnets:get vpc:vpcs:list vpc:publicIps:get vpc:publicIps:list vpc:ports:update vpc:publicIps:update vpc:ports:delete dms:instance:delete 删除实例 无
  • DMS for RocketMQ权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 DMS for RocketMQ部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华北-北京1)对应的项目(cn-north-1)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问DMS for RocketMQ时,需要先切换至授权区域。 权限根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对DMS for RocketMQ服务,管理员能够控制IAM用户仅能对实例进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分,DMS for RocketMQ支持的API授权项请参见细粒度策略支持的授权项。 如表1所示,包括了DMS for RocketMQ的所有系统权限。 表1 DMS for RocketMQ系统权限 系统角色/策略名称 描述 类别 依赖关系 DMS FullAccess 分布式消息服务管理员权限,拥有该权限的用户可以操作所有分布式消息服务的功能。 系统策略 无 DMS UserAccess 分布式消息服务普通用户权限(没有实例创建、修改、删除、扩容)。 系统策略 无 DMS ReadOnlyAccess 分布式消息服务的只读权限,拥有该权限的用户仅能查看分布式消息服务数据。 系统策略 无 DMS VPCAccess 分布式消息服务租户委托时需要授权的VPC操作权限。 系统策略 无 DMS KMSAccess 分布式消息服务租户委托时需要授权的KMS操作权限。 系统策略 无 DMS Administrator 分布式消息服务的管理员权限。 系统角色 依赖Tenant Guest和VPC Administrator。 DMS ELBAccess 分布式消息服务租户委托时需要授权的ELB操作权限。 系统策略 无 DMS VPCEndpointAccess 分布式消息服务租户委托时需要授权的VPCEndpoint操作权限。 系统策略 无 DMSAgencyCheckAccessPolicy 分布式消息服务检查租户委托权限需要授权的IAM操作权限。 系统策略 无 表2列出了DMS for RocketMQ常用操作与系统策略的授权关系,您可以参照该表选择合适的系统策略。 表2 常用操作与系统策略的关系 操作 DMS FullAccess DMS UserAccess DMS ReadOnlyAccess DMS VPCAccess DMS KMSAccess DMS ELBAccess DMS VPCEndpointAccess DMSAgencyCheckAccessPolicy 创建实例 √ × × × × × × × 修改实例 √ × × × × × × × 删除实例 √ × × × × × × × 变更实例规格 √ × × × × × × × 查询实例信息 √ √ √ × × × × ×
  • 消息 表4 消息约束与限制 限制项 约束与限制 消息存储时长 消息默认保留时间为48小时,支持修改,最大存储时长为720小时,超过保留时间会被自动删除。 消息大小 生产消息的最大长度为4MB,其中,消息属性(即消息本身的信息,比如Topic名称、消息类型、消息ID、消息发送时间等)大小均不能超过16KB。消息大小不支持修改。 消息大小超过限制会导致消息发送失败。 定时消息的延时时长 最大延时时长为1年,不支持修改。 支持1年内任意时间的定时消息。
  • 实例 表1 实例约束与限制 限制项 约束与限制 版本 实例创建后,不支持变更版本。建议服务端版本和客户端版本保持一致。 实例类型 5.x的基础版不支持直接升级到专业版。 存储空间 磁盘类型创建完成后不可修改。 只支持扩大存储空间,不支持减小存储空间。 扩容存储空间有次数限制,最多扩容20次。 代理个数 只支持增加代理个数,不支持减小代理个数。 代理规格 支持扩容代理规格。 若实例Broker数为1,扩容期间会导致Broker主备切换,造成业务中断30秒以内。 若实例Broker数大于1,且Topic分布到多个Broker上,则扩容期间会发生秒级连接闪断。顺序消息可能会发生乱序,请谨慎评估业务影响,建议您在业务低峰期扩容。 修改VPC/子网/可用区 实例创建后,不支持修改VPC/子网/可用区。 Request-Reply机制 不支持此机制。 修改配置参数 不支持调用开源接口修改配置参数。
  • 消费组 表3 消费组约束与限制 限制项 约束与限制 创建消费组的数量 消费组的数量根据产品规格确定,不支持修改。 当消费组的数量达到上限后,您无法继续创建消费组。 是否需要创建消费组、消费者、生产者 不需要单独创建消费组、生产者和消费者,在使用时自动生成,实例创建后,直接使用即可。 消费位点重置 支持重置消费2天内任意时间点的消息。 重置消费进度 重置消费进度可能会导致重复消费。 代理故障场景 实例中部分代理故障时,无法创建、修改和删除消费组,只能查询消费组。
  • 单机实例和集群实例的差异 表3 单机实例和集群实例的差异 维度 单机 集群 使用场景 开发测试场景,对性能和可靠性无要求。 生产环境,无法容忍单点故障,有高可用诉求。 部署架构 采用单节点部署,高可用能力依赖于E CS 的HA能力,节点故障期间无法提供服务。 采用多节点集群部署,具有分布式高可用能力,无单点故障问题,出现故障服务自动切换。 SLA 无 参考SLA 功能限制 支持存储空间变更,不支持实例规格变更 不支持跨版本变更 支持存储空间和实例规格变更 不支持跨版本变更
  • 基础版和专业版的差异 分布式消息服务RocketMQ版5.x支持两种实例类型:基础版、专业版,它们的差异如表2所示。 表2 基础版和专业版的差异 维度 基础版 专业版 目标用户 入门级、对于成本敏感的用户。 对于可靠性、性能等要求高的进阶型、企业级用户。 产品定位 兼容开源的RocketMQ,提供基础的RocketMQ能力。 除了提供基础版能力外,还提供业务高可用、数据安全、信道加密等企业级特性。 产品功能 支持基础的消息收发能力 支持常见的消息类型(如普通消息、顺序消息、事务消息、定时消息) 支持消息轨迹 支持SSL 支持ACL,但不支持为指定ACL用户配置Topic和消费组权限 支持基础的消息收发能力 支持常见的消息类型(如普通消息、顺序消息、事务消息、定时消息) 支持消息轨迹 支持SSL 支持ACL,且支持为指定ACL用户配置Topic和消费组权限 支持弹性TPS 可用性 多可用区 多可用区 资源部署方式 资源共享 底层物理资源采用共享型部署方式,在大部分情况下规格可以达到对应的TPS,极端负载情况下可能出现TPS不稳定。 资源独享 底层物理资源采用独享型专有资源部署,保障性能的稳定,具备更好的可靠性和可服务性。
  • 5.x版本的优势 与4.8.0版本相比,5.x版本具有如下优势: 架构更先进 5.x版本提供无状态的Proxy接入,解决无法通过代理访问的问题。5.x提供了Pop消费模式,降低消费堆积发生的概率。 开发门槛更低 支持开源gRPC协议SDK,提供更多种语言的SDK,API更加简洁友好。 成本更弹性 支持更小的规格,灵活弹性扩容,节约成本。专业版支持弹性TPS,弹性TPS能力适用于业务侧偶尔出现少量突发流量的场景。 兼容性好 完全兼容RocketMQ 4.8.0 SDK的接入方式,可以无缝升级到5.x。
  • 准备环境 执行以下命令,检查是否已安装Go。 go version 返回如下回显时,说明Go已经安装。 go version go1.16.5 linux/amd64 如果未安装Go,请下载并安装。 进入Go脚本所在的bin目录下。 执行“touch go.mod”命令新建一个“go.mod”,并增加以下代码,添加依赖。 module rocketmq-example-go go 1.13 require ( github.com/apache/rocketmq-client-go/v2 v2.1.2 ) 执行如下命令增加代理。 export GOPROXY=https://goproxy.cn,direct 执行如下命令下载依赖。 go mod tidy
提示

您即将访问非华为云网站,请注意账号财产安全