云服务器内容精选

  • 分布式消息服务RocketMQ版5.x专业版默认规格 专业版目前还处于公测阶段。 分布式消息服务RocketMQ版5.x专业版产品规格由以下六个维度定义: 资源规格:定义使用的弹性云服务器的规格类型。 存储容量:定义实例可以保存的存储容量。 实例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产品规格由以下六个维度定义: 资源规格:定义使用的弹性云服务器的规格类型。 代理个数:定义实例的规模。 存储容量:定义单个代理可以保存的存储容量。 单个代理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基础版产品规格由以下五个维度定义: 资源规格:定义使用的弹性云服务器的规格类型。 存储容量:定义实例可以保存的存储容量。 实例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 rocketmq.b2.large.8 200 ~ 60000 4000 100 1000 rocketmq.b2.large.12 200 ~ 60000 6000 100 1000
  • 与Kafka、RabbitMQ的差异 表1 功能差异 功能项 RocketMQ Kafka RabbitMQ 优先级队列 不支持 不支持 3.8.35版本:支持。建议优先级大小设置在0-10之间。 AMQP-0-9-1版本:支持。优先级大小设置在1-9之间。 延迟队列 支持 不支持 不支持 死信队列 支持 不支持 支持 消息重试 支持 不支持 3.8.35版本:不支持。 AMQP-0-9-1版本:支持。 消费模式 支持客户端主动拉取和服务端推送两种方式。 客户端主动拉取。 支持客户端主动拉取和服务端推送两种模式。 广播消费 支持 支持 支持 消息回溯 支持 支持。Kafka支持按照offset和timestamp两种维度进行消息回溯。 3.8.35版本:不支持。RabbitMQ中消息一旦被确认消费就会被标记删除。 AMQP-0-9-1版本:支持。 消息堆积 支持 支持。考虑吞吐因素,Kafka的堆积效率比RabbitMQ总体上要高。 支持 持久化 支持 支持 支持 消息追踪 支持 不支持 3.8.35版本:不支持。 AMQP-0-9-1版本:支持。 消息过滤 支持 支持 3.8.35版本:不支持,但可以自行封装。 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.8.35版本:支持SSL认证。 AMQP-0-9-1版本:支持ACL访问控制。 事务性消息 支持 支持 支持
  • 计费模式概述 分布式消息服务RocketMQ版提供包年/包月和按需计费两种计费模式,以满足不同场景下的用户需求。 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买周期越长,享受的折扣越大。一般适用于业务需求量长期稳定的成熟业务。 按需计费:一种后付费模式,即先使用再付费,按照RocketMQ实例实际使用时长计费,秒级计费,按小时结算。按需计费模式允许您根据实际业务需求灵活地调整资源使用,无需提前预置资源,从而降低预置过多或不足的风险。一般适用于电商抢购等业务需求量瞬间大幅波动的场景。 表1列出了两种计费模式的区别。 表1 计费模式 计费模式 包年/包月 按需计费 付费方式 预付费 按照订单的购买周期结算。 后付费 按照RocketMQ实例实际使用时长计费。 计费周期 按订单的购买周期计费。 秒级计费,按小时结算。 适用计费项 实例费用、存储空间费用 实例费用、存储空间费用 变更计费模式 支持变更为按需计费模式。 但包年/包月计费模式到期后,按需的计费模式才会生效。 支持变更为包年/包月计费模式。 变更规格 支持变更实例规格。 支持变更实例规格。 回收站中实例是否计费 开启回收站策略的包年/包月实例,退订后会存入回收站中,此时不收取实例费用,但是会按需收取存储空间费用。 从回收站中恢复的包年/包月实例,计费模式会变为按需计费。 开启回收站策略的按需实例,删除后会存入回收站中,此时不收取实例费用,按需收取存储空间费用。 适用场景 适用于可预估资源使用周期的场景。对于长期使用者,推荐该方式,价格比按需计费模式更优惠。 适用于资源需求波动的场景,可以随时开通,随时删除。 父主题: 计费模式
  • 消息清理机制 无论消息是否被消费,RocketMQ的消息默认保留时间为48小时,最长保留时间为720小时,修改保留时间的操作请参见修改RocketMQ消息保留时间。RocketMQ消息存储在CommitLog文件中,CommitLog文件大小为1GB,当一个CommitLog文件写满后,会生成一个新的CommitLog文件。RocketMQ删除消息是删除CommitLog文件,而不是删除一条消息。CommitLog文件为顺序写入,当最后写入的一条消息过期时,表示CommitLog文件过期。满足如下任意一个条件,CommitLog文件将会被清理: 每天凌晨4点会清理过期的文件,部分老实例由于未设置时区,清理时间为每天中午12点。 当磁盘使用率达到75%时,会立刻清理过期的文件。 当磁盘使用率达到85%时,会从最早创建的文件开始清理,不管文件是否已过期,直到磁盘空间充足。
  • 前提条件 已创建RocketMQ实例和Topic。 如果通过按Message ID查询,需要提前获取消息所在的Topic名称和消息的Message ID。 Message ID为生产消息后返回的MsgId,如6中返回的内容,也可先通过Topic查询消息,记录Message ID。 如果通过按Message Key查询,需要提前获取消息所在的Topic名称和消息的Message Key。 Message Key为7中配置的消息Key,也可先通过Topic查询消息,记录Message Key。
  • 准备实例依赖资源 在购买RocketMQ实例前,您需要提前准备相关依赖资源,包括虚拟私有云(Virtual Private Cloud,以下简称VPC)、子网和安全组,并配置安全组策略。每个RocketMQ实例都部署在某个VPC中,并绑定具体的子网和安全组,通过这样的方式为RocketMQ提供一个隔离的、用户自主配置和管理的虚拟网络环境以及安全保护策略,提升实例的安全性。 RocketMQ实例所需资源的具体要求和创建指导如表1所示。 表1 RocketMQ实例依赖资源 准备资源 要求 创建指导 VPC和子网 RocketMQ实例可以使用当前账号下已创建的VPC和子网,也可以使用新创建的VPC和子网,还可以使用共享VPC和子网,请根据实际需要进行配置。 共享VPC是基于 资源访问管理 (Resource Access Manager,简称 RAM )服务的机制,VPC的所有者可以将VPC内的子网共享给一个或者多个账号使用。通过共享VPC功能,可以简化网络配置,帮助您统一配置和运维多个账号下的资源,有助于提升资源的管控效率,降低运维成本。有关VPC子网共享的更多信息,请参见共享VPC。 在创建VPC和子网时应注意如下要求: 创建的VPC与使用的RocketMQ实例应在相同的区域。 创建VPC和子网时,配置参数建议使用默认配置。 创建VPC和子网的操作指导请参考创建虚拟私有云和子网,若需要在已有VPC上创建和使用新的子网,请参考为虚拟私有云创建新的子网。 安全组 不同的RocketMQ实例可以重复使用相同的安全组,也可以使用不同的安全组,请根据实际需要进行配置。 使用RocketMQ实例必须添加表2或表3所示安全组规则,其他规则请根据实际需要添加。 说明: 创建安全组后,系统默认添加入方向“允许安全组内的弹性云服务器彼此通信”规则和出方向“放通全部流量”规则,此时使用内网通过同一个VPC访问RocketMQ实例,无需添加表2或表3的规则。 创建安全组的操作指导请参考创建安全组,为安全组添加规则的操作指导请参考添加安全组规则。 弹性IP地址 开启公网访问时,才需要配置弹性IP地址。 在创建弹性IP地址时,应注意如下要求: 创建的弹性IP地址与RocketMQ实例在相同的区域。 RocketMQ控制台无法识别开启IPv6转换功能的弹性IP地址。 创建弹性IP地址的操作指导请参考申请弹性公网IP。 表2 安全组规则(RocketMQ实例4.8.0版本) 方向 协议 端口 源地址 说明 入方向 TCP 8100 RocketMQ客户端所在的IP地址或地址段。 使用TCP协议,通过内网访问元数据节点的端口。 入方向 TCP 8200 使用TCP协议,通过公网访问元数据节点的端口。 入方向 TCP 10100-10199 使用TCP协议,访问业务节点的端口。 表3 安全组规则(RocketMQ实例5.x版本) 方向 协议 端口 源地址 说明 入方向 TCP 8100 RocketMQ客户端所在的IP地址或地址段。 使用TCP协议,通过内网访问实例的端口。 入方向 TCP 8200 使用TCP协议,通过公网访问实例的端口。 入方向 TCP 10100-10199 使用TCP协议,访问业务节点的端口。 入方向 TCP 8080 使用gRPC协议,通过内网访问实例的端口。 入方向 TCP 8081 使用gRPC协议,通过公网访问实例的端口。
  • 购买RocketMQ实例 进入购买RocketMQ实例页面。 选择“计费模式”。 包年/包月:您创建RocketMQ实例时,可以根据需要设置购买时长,系统会一次性按照购买价格进行扣费。 按需付费:您创建RocketMQ实例时,无需设置购买时长,系统会根据消费时长进行扣费。 选择“区域”。 不同区域的云服务产品之间内网互不相通。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。 选择“项目”。 每个区域默认对应一个项目,这个项目由系统预置,用来隔离物理区域间的资源(计算资源、存储资源和网络资源)。 选择“可用区”。 可用区指在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。 请根据实例版本和界面提示选择可用区数量。 设置“实例名称”。 名称支持自定义,但需要符合命名规则:长度为4~64个字符,由英文字母开头,且只能由英文字母、数字、中划线、下划线组成。 设置“企业项目”。 该参数针对企业用户使用。企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理,默认项目为default。 设置实例规格信息。 “规格选择模式”设置为“默认”,且“版本”为“4.8.0”时,您需要根据实际情况选择RocketMQ实例支持的规格、代理个数和代理存储空间。 部署架构:仅支持“集群”,保持默认值即可。 CPU架构:仅支持“x86计算”,保持默认值即可。 代理规格:根据实际业务情况选择实例规格。 代理数量:RocketMQ实例的代理个数。 代理存储空间:选择RocketMQ实例的磁盘类型和单个代理的储存空间。 磁盘类型支持高I/O、超高I/O、通用型SSD和极速型SSD,如何选择磁盘类型请参考磁盘类型及性能介绍。 对于测试环境使用的RocketMQ实例,可以选择高I/O磁盘。对于生产环境使用的RocketMQ实例,请选择通用型SSD及以上的磁盘规格。 图1 默认的规格类型(RocketMQ实例4.8.0版本) “规格选择模式”设置为“默认”,且“版本”为“5.x”时,您需要根据实际情况选择RocketMQ实例支持的规格和存储空间。 实例类型:支持“基础版”和“专业版”,保持默认值即可。 专业版目前还处于公测阶段。 部署架构:支持“单机”和“集群”。 单机:单机部署不具备高可用能力。基础版的单机仅用于测试环境,不可用于生产环境。 集群:集群部署具备高可用和反亲和能力。 CPU架构:仅支持“x86计算”,保持默认值即可。 实例规格:根据实际业务情况选择实例规格。 存储空间:选择RocketMQ实例的磁盘类型和储存空间总量。 磁盘类型支持高I/O、超高I/O、通用型SSD和极速型SSD,如何选择磁盘类型请参考磁盘类型及性能介绍。 对于测试环境使用的RocketMQ实例,可以选择高I/O磁盘。对于生产环境使用的RocketMQ实例,请选择通用型SSD及以上的磁盘规格。 “规格选择模式”设置为“规格测算”(仅4.8.0版本支持该种模式)时,系统根据您输入的参数(Topic个数、生产tps峰值、消费tps峰值、平均消息大小和日生产消息数),为您计算出不同规格所需的代理个数和代理存储空间,您根据实际情况选择。 图2 规格测算 设置实例网络环境信息。 在“虚拟私有云”下拉列表,选择已经创建好的或共享的虚拟私有云和子网。 虚拟私有云可以为您的RocketMQ实例构建隔离的、能自主配置和管理的虚拟网络环境。 虚拟私有云和子网在RocketMQ实例创建完成后,不支持修改。 设置IPv6开关。 仅当子网选择了支持IPv6地址后,才会显示该参数。开启IPv6后,客户端可以使用IPv6的内网连接地址连接实例。 此功能仅在“华东二”区域上线,且仅4.8.0版本支持创建IPv6实例。 实例创建成功后,不支持修改IPv6开关。 使用内网IPv6方式连接实例需要通过 VPC终端节点 实现,使用期间会产生VPC终端节点的费用,收费标准请参考计费说明。 在“安全组”下拉列表,可以选择已经创建好的安全组。 安全组是一组对RocketMQ实例访问规则的集合。 设置SSL。 SSL:服务端与客户端之间通过密文传输,安全性较高,性能较低。 PLAINTEXT:服务端与客户端之间通过明文传输,安全性较低,性能较高。 PERMISSIVE:服务端与客户端之间即能通过明文传输又能通过密文传输,传输方式由客户端决定。 实例创建后,SSL开关支持修改,请根据实际情况选择一种数据传输模式。 设置ACL访问控制。 开启ACL访问控制后,为不同用户赋予不同的Topic和消费组权限,以达到用户之间的权限隔离。 设置实例购买时长。 当选择了“包年/包月”付费模式时,页面才显示“购买时长”参数,您需要根据业务需要选择。 单击“更多配置”,设置更多相关信息。 设置“公网访问”。 “公网访问”默认为关闭状态,您可以选择是否开启。开启公网访问后,还需要为RocketMQ实例设置对应的IPv4弹性IP地址。 设置标签。 标签用于标识云资源,当您拥有相同类型的许多云资源时,可以使用标签按各种维度(例如用途、所有者或环境)对云资源进行分类。 如您的组织已经设定分布式消息服务RocketMQ版的相关标签策略,则需按照标签策略规则为RocketMQ实例添加标签。标签如果不符合标签策略的规则,则可能会导致RocketMQ实例创建失败,请联系组织管理员了解标签策略详情。 如果您已经预定义了标签,在“标签键”和“标签值”中选择已经定义的标签键值对。另外,您可以单击右侧的“查看预定义标签”,跳转到标签管理服务页面,查看已经预定义的标签,或者创建新的标签。 您也可以直接在“标签键”和“标签值”中设置标签。 每个RocketMQ实例最多支持设置20个不同标签,标签的命名规格,请参考配置RocketMQ实例标签章节。 设置实例的描述信息。 填写完上述信息后,单击“立即购买”,进入规格确认页面。 确认实例信息无误且阅读并同意《华为云用户协议》后,如果“计费模式”选择“包年/包月”,单击“去支付”。根据界面提示信息,支付费用。如果“计费模式”选择“按需付费”,单击“提交”。 在实例列表页面查看实例是否创建成功。 创建实例大约需要3到15分钟,此时实例的“状态”为“创建中”。 当实例的“状态”变为“运行中”时,说明实例创建成功。 当实例的“状态”变为“创建失败”,请参考删除RocketMQ实例,删除创建失败的实例,然后重新创建。如果重新创建仍然失败,请联系客服。
  • 前提条件 已购买RocketMQ实例。 准备一台Linux系统的主机,在主机中安装Java Development Kit 1.8.111或以上版本,并完成环境变量配置,具体操作可参见快速连接RocketMQ并生产消费消息。 准备网络环境。 RocketMQ实例分内网地址以及公网地址两种网络连接方式。如果使用公网地址,则消息生产与消费客户端需要有公网访问权限,并配置如表1所示安全组。 表1 安全组规则 方向 协议 端口 源地址 说明 入方向 TCP 8200 RocketMQ客户端所在的IP地址或地址段。 使用TCP协议,通过公网访问元数据节点的端口。 入方向 TCP 10100-10199 使用TCP协议,访问业务节点的端口。
  • 在application.properties文件中填写配置 #=============== 生产者配置 ======================= ## 替换成真实RocketMQ的NameServer地址与端口 rocketmq.name-server=127.0.0.1:9876 rocketmq.producer.group=my-group #=============== 消费者配置 ======================= ## 替换成真实RocketMQ的NameServer地址与端口 rocketmq.name-server=127.0.0.1:9876
  • 生产消息 生产消息的示例代码如下(以下加粗内容需要替换为实例自有信息,请根据实际情况替换)。 @SpringBootApplication public class ProduceDemoApplication implements CommandLineRunner { @Resource private RocketMQTemplate rocketMQTemplate; public static void main(String[] args) { SpringApplication.run(ProduceDemoApplication.class, args); } @Override public void run(String... args) throws Exception { // send message synchronously rocketMQTemplate.convertAndSend("topic", "Hello, World!"); // send spring message rocketMQTemplate.send( "topic", MessageBuilder.withPayload("Hello, World! I'm from spring message").build()); // send messgae asynchronously rocketMQTemplate.asyncSend( "topic", MessageBuilder.withPayload("Hello, World! I'm from spring message").build(), new SendCallback() { @Override public void onSuccess(SendResult var1) { System.out.printf("async onSucess SendResult=%s %n", var1); } @Override public void onException(Throwable var1) { System.out.printf("async onException Throwable=%s %n", var1); } }); // Send messages orderly rocketMQTemplate.syncSendOrderly( "topic", MessageBuilder.withPayload("Hello, World").build(), "hashkey"); } }
  • 消费组 表3 消费组约束与限制 限制项 约束与限制 创建消费组的数量 消费组的数量根据产品规格确定,不支持修改。 当消费组的数量达到上限后,您无法继续创建消费组。 是否需要创建消费组、消费者、生产者 不需要单独创建消费组、生产者和消费者,在使用时自动生成,实例创建后,直接使用即可。 消费位点重置 支持重置消费2天内任意时间点的消息。 重置消费进度 重置消费进度可能会导致重复消费。 代理故障场景 实例中部分代理故障时,无法创建、修改和删除消费组,只能查询消费组。
  • 实例 表1 实例约束与限制 限制项 约束与限制 版本 实例创建后,不支持变更版本。建议服务端版本和客户端版本保持一致。 存储空间 磁盘类型创建完成后不可修改。 只支持扩大存储空间,不支持减小存储空间。 扩容存储空间有次数限制,最多扩容20次。 代理个数 只支持增加代理个数,不支持减小代理个数。 代理规格 支持扩容代理规格。 若实例Broker数为1,扩容期间会导致Broker主备切换,造成业务中断30秒以内。 若实例Broker数大于1,且Topic分布到多个Broker上,则扩容期间会发生秒级连接闪断。顺序消息可能会发生乱序,请谨慎评估业务影响,建议您在业务低峰期扩容。 修改VPC/子网/可用区 实例创建后,不支持修改VPC/子网/可用区。 Request-Reply机制 不支持此机制。 修改配置参数 不支持调用开源接口修改配置参数。
  • 身份认证 无论用户通过控制台还是API访问DMS for RocketMQ,都会要求访问请求方出示身份凭证,并进行身份合法性校验,同时提供登录保护和登录验证策略加固身份认证安全。DMS for RocketMQ基于 统一身份认证 服务(Identity and Access Management,简称 IAM ),支持三种身份认证方式:用户名密码、访问密钥、临时访问密钥。同时还提供登录保护及登录验证策略。