云服务器内容精选
-
自定义购买RocketMQ实例 进入购买RocketMQ实例页面。 在“自定义购买”页签中,设置实例基础配置。 表8 实例基础配置参数说明 参数名称 说明 计费模式 RocketMQ实例的计费模式。 取值范围: 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。 按需付费:一种后付费模式,即先使用再付费,按照RocketMQ实例实际使用时长计费,秒级计费,按小时结算。 区域 不同区域的云服务产品之间内网互不相通。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。 可用区 可用区指在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。 请根据实际情况选择可用区。RocketMQ实例创建成功后,不支持修改可用区。 设置实例规格信息。 表9 实例规格参数说明 参数名称 说明 规格选择模式 取值仅包含“默认”。 版本 RocketMQ的版本号。 取值包含“5.x”和“4.8.0”。 RocketMQ实例创建成功后,不支持修改版本号。 实例类型 RocketMQ实例的类型。 5.x版本取值包含“基础版”和“专业版”,4.8.0版本取值固定为“默认”。 说明: 专业版目前还处于公测阶段。 部署架构 根据需求选择“单机”或“集群”。4.8.0版本仅支持“集群”。 代理/实例规格 请根据业务需求选择相应的代理/实例规格。 5.x版本时,该参数显示为“实例规格”。 4.8.0版本时,该参数显示为“代理规格”。 请根据实际情况选择。 代理数量 选择代理数量。 4.8.0版本时才显示该参数。 单个代理存储空间/存储空间 存储空间用于存储消息(包括副本中的消息)、日志和元数据,建议根据业务消息体积、副本数量以及预留磁盘大小选择存储空间大小。 5.x版本时,该参数显示为“存储空间”。 4.8.0版本时,该参数显示为“单个代理存储空间”。 磁盘类型和磁盘大小根据实际需求进行设置。RocketMQ实例创建后,磁盘类型不支持修改。 磁盘类型支持高I/O、超高I/O、通用型SSD和极速型SSD。对于测试环境使用的RocketMQ实例,推荐选择高I/O磁盘。对于生产环境使用的RocketMQ实例,推荐选择通用型SSD及以上的磁盘规格。具体如何选择磁盘类型可以参考磁盘类型及性能介绍和磁盘类型对RocketMQ实例性能有什么影响?。 设置网络信息。 表10 实例网络参数说明 参数名称 说明 虚拟私有云 选择已经创建好的或共享的虚拟私有云。 虚拟私有云可以为您的RocketMQ实例构建隔离的、能自主配置和管理的虚拟网络环境。您可以单击右侧的“管理虚拟私有云”,跳转到网络控制台的“虚拟私有云”页面,查看或创建虚拟私有云。 RocketMQ实例创建完成后,不支持修改虚拟私有云。 子网 选择已经创建好的或共享的子网。 子网在RocketMQ实例创建完成后,不支持修改。 子网开启IPv6后,RocketMQ实例支持IPv6功能。 IPv6 子网开启IPv6后,页面才显示此参数。开启IPv6后,客户端可以使用IPv6地址连接RocketMQ实例。 RocketMQ实例创建完成后,不支持修改IPv6开关。 此功能仅在“华东二”区域上线。 使用内网IPv6方式连接实例需要通过 VPC终端节点 实现,使用期间会产生VPC终端节点的费用,收费标准请参考计费说明。 安全组 选择已经创建好的安全组。 安全组是一组对RocketMQ实例的访问规则的集合。您可以单击右侧的“管理安全组”,跳转到网络控制台的“安全组”页面,查看或创建安全组。 客户端连接RocketMQ实例前,请根据不同的连接方式配置对应的安全组规则,否则会连接失败。具体的安全组规则请参考表3。 设置实例访问方式。 表11 实例访问方式参数说明 参数名称 说明 公网访问 通过公网连接RocketMQ实例。 默认为关闭状态。开启公网访问后,还需要为RocketMQ实例设置对应的IPv4弹性IP地址。 加密方式 RocketMQ实例支持的接入加密方式。 取值范围: SSL:服务端与客户端之间通过密文传输,安全性较高,性能较低。 PLAINTEXT:服务端与客户端之间通过明文传输,安全性较低,性能较高。 PERMISSIVE:服务端与客户端之间即能通过明文传输又能通过密文传输,传输方式由客户端决定。 请根据实际情况选择。 设置高级配置。 表12 高级配置参数说明 参数名称 说明 实例名称 名称支持自定义,但需要符合命名规则:长度为4~64个字符,由英文字母开头,只能由英文字母、数字、中划线、下划线组成。 企业项目 该参数针对企业用户使用。 企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理,默认项目为default。 ACL访问控制 开启ACL访问控制可以对生产消息和消费消息进行权限管理。 关闭ACL访问控制后,将无法使用用户管理功能。 标签 标签用于标识云资源,当您拥有相同类型的许多云资源时,可以使用标签按各种维度(例如用途、所有者或环境)对云资源进行分类。 如您的组织已经设定分布式消息服务RocketMQ版的相关标签策略,则需按照标签策略规则为RocketMQ实例添加标签。标签如果不符合标签策略的规则,则可能会导致RocketMQ实例创建失败,请联系组织管理员了解标签策略详情。 如果您已经预定义了标签,在“标签键”和“标签值”中选择已经定义的标签键值对。另外,您可以单击“创建预定义标签”,跳转到标签管理服务页面,查看已经预定义的标签,或者创建新的标签。 您也可以直接单击“添加新标签”,在“标签键”和“标签值”中设置标签信息。 当前每个RocketMQ实例最多支持添加20个不同标签,标签的命名规格,请参考配置RocketMQ实例标签章节。 描述 设置实例的描述信息,长度为0~1024个字符。 设置实例购买时长。 当选择了“包年/包月”付费模式时,页面才显示“购买时长”参数,您可以根据业务需要选择购买时长。如果勾选“自动续费”,在“包年/包月”资源到期后,自动进行续费。 按月购买的实例:自动续费周期为1个月。 按年购买的实例:自动续费周期为1年。 在页面右侧“配置概要”中,查看已选择的实例配置。 确认配置无误后,单击“确认订单”,进入“确认配置”页面。 确认实例信息无误且阅读并同意《华为云用户协议》后,如果“计费模式”选择“包年/包月”,单击“去支付”。根据界面提示信息,支付费用。如果“计费模式”选择“按需付费”,单击“提交”。 在实例列表页面,查看RocketMQ实例是否创建成功。 创建实例大约需要3到15分钟,此时实例的“状态”为“创建中”。 当实例的“状态”变为“运行中”时,说明实例创建成功。 当实例的“状态”变为“创建失败”,请参考删除RocketMQ实例,删除创建失败的实例,然后重新创建。如果重新创建仍然失败,请联系客服。 创建失败的实例,不会占用其他资源。
-
快速购买RocketMQ实例 进入购买RocketMQ实例页面。 在“快速购买”页签中,设置实例基础配置。 表4 实例基础配置参数说明 参数名称 说明 计费模式 RocketMQ实例的计费模式。 取值范围: 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。 按需付费:一种后付费模式,即先使用再付费,按照RocketMQ实例实际使用时长计费,秒级计费,按小时结算。 区域 不同区域的云服务产品之间内网互不相通。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。 可用区 可用区指在同一区域下,电力、网络隔离的物理区域,可用区之间内网互通,不同可用区之间物理隔离。 请根据实际情况选择可用区。RocketMQ实例创建成功后,不支持修改可用区。 设置套餐规格。 综合推荐:分布式消息服务RocketMQ版已经预设了几种规格,请根据需要选择。 磁盘类型和磁盘大小根据实际需求进行设置。RocketMQ实例创建后,磁盘类型不支持修改。 磁盘类型支持高I/O、超高I/O、通用型SSD和极速型SSD。对于测试环境使用的RocketMQ实例,推荐选择高I/O磁盘。对于生产环境使用的RocketMQ实例,推荐选择通用型SSD及以上的磁盘规格。具体如何选择磁盘类型可以参考磁盘类型及性能介绍和磁盘类型对RocketMQ实例性能有什么影响?。 图1 综合推荐 规格测算:系统根据您输入的参数(Topic个数、生产TPS峰值、消费TPS峰值、平均消息大小和日生产消息数),为您计算出不同规格所需的代理个数和代理存储空间,您根据实际情况选择。5.x版本不支持规格测算。 图2 规格测算 设置网络信息。 表5 实例网络参数说明 参数名称 说明 虚拟私有云 选择已经创建好的或共享的虚拟私有云。 虚拟私有云可以为您的RocketMQ实例构建隔离的、能自主配置和管理的虚拟网络环境。您可以单击右侧的“管理虚拟私有云”,跳转到网络控制台的“虚拟私有云”页面,查看或创建虚拟私有云。 RocketMQ实例创建完成后,不支持修改虚拟私有云。 子网 选择已经创建好的或共享的子网。 子网在RocketMQ实例创建完成后,不支持修改。 子网开启IPv6后,RocketMQ实例支持IPv6功能。 IPv6 子网开启IPv6后,页面才显示此参数。开启IPv6后,客户端可以使用IPv6地址连接RocketMQ实例。 RocketMQ实例创建完成后,不支持修改IPv6开关。 此功能仅在“华东二”区域上线。 使用内网IPv6方式连接实例需要通过VPC终端节点实现,使用期间会产生VPC终端节点的费用,收费标准请参考计费说明。 安全组 选择已经创建好的安全组。 安全组是一组对RocketMQ实例的访问规则的集合。您可以单击右侧的“管理安全组”,跳转到网络控制台的“安全组”页面,查看或创建安全组。 客户端连接RocketMQ实例前,请根据不同的连接方式配置对应的安全组规则,否则会连接失败。具体的安全组规则请参考表3。 设置实例访问方式。 表6 实例访问方式参数说明 参数名称 说明 公网访问 通过公网连接RocketMQ实例。 默认为关闭状态。开启公网访问后,还需要为RocketMQ实例设置对应的IPv4弹性IP地址。 加密方式 RocketMQ实例支持的接入加密方式。 取值范围: SSL:服务端与客户端之间通过密文传输,安全性较高,性能较低。 PLAINTEXT:服务端与客户端之间通过明文传输,安全性较低,性能较高。 PERMISSIVE:服务端与客户端之间即能通过明文传输又能通过密文传输,传输方式由客户端决定。 请根据实际情况选择。 设置高级配置。 表7 高级配置参数说明 参数名称 说明 实例名称 名称支持自定义,但需要符合命名规则:长度为4~64个字符,由英文字母开头,只能由英文字母、数字、中划线、下划线组成。 企业项目 该参数针对企业用户使用。 企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理,默认项目为default。 ACL访问控制 开启ACL访问控制可以对生产消息和消费消息进行权限管理。 关闭ACL访问控制后,将无法使用用户管理功能。 标签 标签用于标识云资源,当您拥有相同类型的许多云资源时,可以使用标签按各种维度(例如用途、所有者或环境)对云资源进行分类。 如您的组织已经设定分布式消息服务RocketMQ版的相关标签策略,则需按照标签策略规则为RocketMQ实例添加标签。标签如果不符合标签策略的规则,则可能会导致RocketMQ实例创建失败,请联系组织管理员了解标签策略详情。 如果您已经预定义了标签,在“标签键”和“标签值”中选择已经定义的标签键值对。另外,您可以单击“创建预定义标签”,跳转到标签管理服务页面,查看已经预定义的标签,或者创建新的标签。 您也可以直接单击“添加新标签”,在“标签键”和“标签值”中设置标签信息。 当前每个RocketMQ实例最多支持添加20个不同标签,标签的命名规格,请参考配置RocketMQ实例标签章节。 描述 设置实例的描述信息,长度为0~1024个字符。 设置实例购买时长。 当选择了“包年/包月”付费模式时,页面才显示“购买时长”参数,您可以根据业务需要选择购买时长。如果勾选“自动续费”,在“包年/包月”资源到期后,自动进行续费。 按月购买的实例:自动续费周期为1个月。 按年购买的实例:自动续费周期为1年。 单击“确认订单”,进入“确认配置”页面。 确认实例信息无误且阅读并同意《华为云用户协议》后,如果“计费模式”选择“包年/包月”,单击“去支付”。根据界面提示信息,支付费用。如果“计费模式”选择“按需付费”,单击“提交”。 在实例列表页面,查看RocketMQ实例是否创建成功。 创建实例大约需要3到15分钟,此时实例的“状态”为“创建中”。 当实例的“状态”变为“运行中”时,说明实例创建成功。 当实例的“状态”变为“创建失败”,请参考删除RocketMQ实例,删除创建失败的实例,然后重新创建。如果重新创建仍然失败,请联系客服。 创建失败的实例,不会占用其他资源。
-
准备实例依赖资源 在购买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实例和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的消息默认保留时间为48小时,最长保留时间为720小时,修改保留时间的操作请参见修改RocketMQ消息保留时间。RocketMQ消息存储在CommitLog文件中,CommitLog文件大小为1GB,当一个CommitLog文件写满后,会生成一个新的CommitLog文件。RocketMQ删除消息是删除CommitLog文件,而不是删除一条消息。CommitLog文件为顺序写入,当最后写入的一条消息过期时,表示CommitLog文件过期。满足如下任意一个条件,CommitLog文件将会被清理: 每天凌晨4点会清理过期的文件,部分老实例由于未设置时区,清理时间为每天中午12点。 当磁盘使用率达到70%(针对4.8.0版本)或75%(针对5.x版本)时,会立刻清理过期的文件。 当磁盘使用率达到85%时,会从最早创建的文件开始清理,不管文件是否已过期,直到磁盘空间充足。
-
前提条件 已购买RocketMQ实例。 准备一台Linux系统的主机,在主机中安装Java Development Kit 1.8.111或以上版本,并完成环境变量配置,具体操作可参见快速连接RocketMQ并生产消费消息。 准备网络环境。 RocketMQ实例分内网地址以及公网地址两种网络连接方式。如果使用公网地址,则消息生产与消费客户端需要有公网访问权限,并配置如表1所示安全组。 表1 安全组规则 方向 协议 端口 源地址 说明 入方向 TCP 8200 RocketMQ客户端所在的IP地址或地址段。 使用TCP协议,通过公网访问元数据节点的端口。 入方向 TCP 10100-10199 使用TCP协议,访问业务节点的端口。
-
DMS for RocketMQ请求条件 您可以在创建自定义策略时,通过添加“请求条件”(Condition元素)来控制策略何时生效。请求条件包括条件键和运算符,条件键表示策略语句的Condition元素,分为全局级条件键和服务级条件键。全局级条件键(前缀为g:)适用于所有操作,服务级条件键(前缀为服务缩写,如dms:)仅适用于对应服务的操作。运算符与条件键一起使用,构成完整的条件判断语句。 DMS for RocketMQ通过 IAM 预置了一组条件键,例如,您可以先使用dms:ssl条件键检查RocketMQ实例是否开启SSL,然后再允许执行操作。下表显示了适用于DMS for RocketMQ服务特定的条件键。 表1 DMS for RocketMQ请求条件 DMS for RocketMQ条件键 运算符 描述 dms:publicIP Bool Null 是否开启公网 dms:ssl Bool Null 是否开启SSL
-
示例流程 图1 给用户授权DMS for RocketMQ权限流程 创建用户组并授权 在IAM控制台创建用户组,并授予DMS for RocketMQ的管理员权限“DMS ReadOnlyAccess”。 创建用户并加入用户组 在IAM控制台创建用户,并将其加入1中创建的用户组。 用户登录并验证权限 新创建的用户登录控制台,切换至授权区域,验证权限: 在“服务列表”中选择分布式消息服务RocketMQ版分布式消息服务RocketMQ,进入RocketMQ实例主界面,单击右上角“购买RocketMQ实例”,尝试购买RocketMQ实例,如果无法购买RocketMQ实例(假设当前权限仅包含DMS ReadOnlyAccess),表示“DMS ReadOnlyAccess”已生效。 在“服务列表”中选择云硬盘(假设当前策略仅包含DMS ReadOnlyAccess),若提示权限不足,表示“DMS ReadOnlyAccess”已生效。
-
DMS for RocketMQ自定义策略样例 如果系统预置的DMS for RocketMQ权限,不满足您的授权要求,可以创建自定义策略。自定义策略中可以添加的授权项(Action)请参考细粒度策略支持的授权项。 目前华为云支持以下两种方式创建自定义策略: 可视化视图创建自定义策略:无需了解策略语法,按可视化视图导航栏选择云服务、操作、资源、条件等策略内容,可自动生成策略。 JSON视图创建自定义策略:可以在选择策略模板后,根据具体需求编辑策略内容;也可以直接在编辑框内编写JSON格式的策略内容。 具体创建步骤请参见:创建自定义策略。本章为您介绍常用的DMS for RocketMQ自定义策略样例。 DMS for RocketMQ的权限与策略基于分布式消息服务DMS,因此在IAM服务中为DMS for RocketMQ分配用户与权限时,请选择并使用“DMS”的权限与策略。 示例1:授权用户删除实例和重启实例 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "dms:instance:modifyStatus", "dms:instance:delete" ] } ] } 示例2:拒绝用户删除实例 拒绝策略需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先原则。 如果您给用户授予DMS FullAccess的系统策略,但不希望用户拥有DMS FullAccess中定义的删除实例权限,您可以创建一条拒绝删除实例的自定义策略,然后同时将DMS FullAccess和拒绝策略授予用户,根据Deny优先原则,则用户可以对DMS for RocketMQ执行除了删除实例外的所有操作。拒绝策略示例如下: { "Version": "1.1", "Statement": [ { "Effect": "Deny", "Action": [ "dms:instance:delete" ] } ] }
-
连接RocketMQ网络要求 客户端可以通过公网连接RocketMQ实例,也可以通过内网连接RocketMQ实例。使用内网连接时,注意以下几点: 如果客户端和RocketMQ实例部署在同一个VPC内,网络默认互通。 如果客户端和RocketMQ实例部署在不同VPC中,由于VPC之间逻辑隔离,客户端和RocketMQ实例不能直接通信,需要打通VPC之间的网络。 客户端连接RocketMQ实例的方式如表1所示。 表1 连接方式说明 连接方式 实现方式 参考文档 公网连接 在RocketMQ控制台开启公网访问,配置弹性公网IP,客户端通过弹性公网IP访问RocketMQ实例。 配置RocketMQ实例的公网访问 内网连接 客户端和RocketMQ实例部署在同一个VPC中,此时网络默认互通。 - 客户端和RocketMQ实例部署在同一个Region的不同VPC中,利用VPC对等连接将两个VPC间的网络打通,实现跨VPC访问。 对等连接 客户端连接RocketMQ实例前,需要放通如下安全组,否则会连接失败。 创建安全组后,系统默认添加入方向“允许安全组内的彼此通信”规则和出方向“放通全部流量”规则,此时使用内网通过同一个VPC访问RocketMQ实例,无需添加表2和表3的规则。 表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网络连接
-
(可选)为用户设置Topic/消费组权限 5.x基础版不支持此操作。 创建用户时会设置默认的Topic和消费组权限,如果需要修改默认权限,则可以在此处重新为用户设置。管理员默认具有所有权限,无需手动添加。 单击用户名称,进入用户详情页面。 在“Topic权限”/“消费组权限”页签中,单击添加权限,弹出“添加权限”对话框。 勾选需要添加权限的Topic或者消费组,选择所需的特殊权限,单击“确定”。 指定Topic或者消费组的特殊权限会覆盖默认权限,如图1中,test01的实际权限为发布+订阅。 图1 用户详情页面
-
准备环境 执行以下命令,检查是否已安装Go。 go version 返回如下回显时,说明Go已经安装。 go version go1.16.5 linux/amd64 如果未安装Go,请下载并安装。 在“go.mod”中增加以下代码,添加依赖。 module rocketmq-example-go go 1.13 require ( github.com/apache/rocketmq-clients/golang/v5 )
-
准备环境 执行以下命令,检查是否已安装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
-
注意事项 定时消息的最大延迟时间为1年,延迟超过1年的消息将会发送失败。 定时消息的定时时间如果被设置成当前时间戳之前的某个时刻,消息将立刻投递给消费者。 在理想情况下,定时消息设定的时间与实际发送时间的误差在0.1s以内。但在定时消息投递压力过大时,会触发定时消息投递流控机制,精度会变差。 在0.1s的精度内,不保证消息投递的顺序性。即如果两条定时消息的定时时间差距小于0.1s,他们投递的顺序与他们发送的顺序无法确保一致。 无法确保定时消息仅投递一次,定时消息可能会重复投递。 定时消息的定时时间是服务端开始向消费端投递的时间。如果消费者当前有消息堆积,那么定时消息会排在堆积消息后面,将不能严格按照配置的时间进行投递。 由于客户端和服务端可能存在时间差,消息的实际投递时间与客户端设置的投递时间之间可能存在偏差,以服务端时间为准。 设置定时消息的投递时间后,依然受消息老化时间限制,默认消息老化时间为2天。例如,设置定时消息5天后才能被消费,如果第5天后一直没被消费,那么这条消息将在第7天被删除。 定时消息将占用普通消息约3倍的存储空间,大量使用定时消息时需要注意存储空间占用。
-
发送定时消息 发送定时消息的示例代码如下(以下加粗内容需要替换为实例自有信息,请根据实际情况替换)。 package main import ( "context" "fmt" "github.com/apache/rocketmq-client-go/v2" "github.com/apache/rocketmq-client-go/v2/primitive" "github.com/apache/rocketmq-client-go/v2/producer" "os" ) func main() { p, _ := rocketmq.NewProducer( producer.WithNsResolver(primitive.NewPassthroughResolver([]string{"192.168.0.1:8100"})), producer.WithRetry(2), ) err := p.Start() if err != nil { fmt.Printf("start producer error: %s", err.Error()) os.Exit(1) } msg := primitive.NewMessage("test", []byte("Hello RocketMQ Go Client!")) msg.WithProperty("__STARTDELIVERTIME", strconv.FormatInt(time.Now().UnixMilli()+3000, 10)) res, err := p.SendSync(context.Background(), msg) if err != nil { fmt.Printf("send message error: %s\n", err) } else { fmt.Printf("send message success: result=%s\n", res.String()) } err = p.Shutdown() if err != nil { fmt.Printf("shutdown producer error: %s", err.Error()) } } 示例代码中的参数说明如下,请参考收集连接信息获取参数值。 192.168.0.1:8100:表示实例连接地址和端口。 test:表示Topic名称。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格