本文介绍创建 Topic 的操作步骤。
背景信息
在RocketMQ 实例中,Topic 是消息发送与接收的基本单元,消息队列 RocketMQ版通过 Topic 对各类消息进行分类管理。消息的生产者将消息发送到 RocketMQ Topic 中,而消息的消费者则通过订阅该 RocketMQ Topic 来消费消息。
说明
每个实例的 Topic 数量配额与实例规格有关,各个规格实例可创建的 Topic 数量请参考产品规格。
前提条件
- 已创建 RocketMQ 实例,且实例状态为运行中,详细操作步骤请参考创建实例。
- 实例当前的可用队列数不为 0。
如果已创建的 Topic 对应队列数之和已达到此实例规格的最大队列数量,则无法创建新的 Topic,建议删除 Topic 之后重试。 - 创建 Topic 时可以直接设置密钥权限。如需设置,请提前创建密钥并获取 AccessKey ID,可参见创建密钥。
操作步骤
登录消息队列 RocketMQ版控制台。
在实例列表页面,单击目标实例名称。
在Topic管理页签,单击创建Topic。
填写Topic的基本信息。
参数 | 说明 |
---|
名称 | Topic 的名称。
命名规则如下: - 长度为 3~127 个字符。
- 只能包含英文、数字、连字符(-)以及下划线(_)。
- 同一实例下 Topic 名称必须唯一,不同实例间的 Topic 名称可以重复。
- Topic 名称中不可包含以下保留字符或特殊前缀。
- 保留字符:RMQ_SYS_TRANS_OP_HALF_TOPIC、BenchmarkTest、TBW102、OFFSET_MOVED_EVENT、SELF_TEST_TOPIC、RMQ_SYS_TRANS_HALF_TOPIC、SCHEDULE_TOPIC_XXXX、RMQ_SYS_TRACE_TOPIC
- 特殊前缀:rocketmq-broker-、%RETRY%、rmq_sys_、%DLQ%
|
队列数 | 设置当前Topic的队列数量,最大不可超过当前实例剩余可用队列数。每个实例规格的队列数量限制请参考产品规格。
在 4.x 版本实例中创建 Topic 时,请参考以下说明设置队列数: - 全局顺序类型的 Topic 队列数默认为 1。
- 其他类型 Topic 的队列数和计算规格有关,n3 及以下规格的队列数默认为 6,n3 以上规格的队列数默认是 broker 组数的两倍。
- 队列数建议设置为计算节点数的倍数,否则可能造成不同 Broker 之间数据不均衡。例如规格 rocketmq.n3.x2.medium 的计算节点数为 3,队列数建议设置为 3 的倍数,即 3、6、9 等。
在 5.x 版本实例中创建 Topic 时,请参考以下说明设置队列数: - 全局顺序类型的 Topic 队列数默认为 1。
- 其他类型 Topic 的队列数默认是 broker 组数的两倍。
- 非顺序场景性能不受队列个数影响,更多队列仅用于提升顺序消费并发性能。
说明 创建 Topic 后,还可以在Topic管理页签或 Topic 的基本信息页面中通过设置队列数方式增加队列数量,详细信息请参考设置队列数。 |
描述 | Topic 的描述信息,长度为 0~128 个字符。 |
消息类型 | 选择当前 Topic 接收的消息类型。 - 普通消息:适用于系统间异步解耦、削峰填谷、日志服务、大规模机器的 Cache 同步以及实时计算分析等场景。
- 事务消息:提供类似 X/Open XA 的分布事务功能,通过事务消息能达到分布式事务的最终一致。
- 分区顺序消息:消息根据 Sharding Key 进行分区,同一个分区的消息将严格按照先入先出的方式进行顺序发布和顺序消费,可以提高并发度和整体性能。
- 全局顺序消息:Topic 只有一个队列,所有消息将严格按照先入先出的阻塞原则,进行顺序发布和顺序消费,即上一条消息没有被成功消费,那么下一条消息会一直被存储到 Topic 队列中。
- 延时消息:指将消息发送到 MQ 服务端,在消息发送时间(当前时间)之后的指定延迟时间点进行投递,比如指定在消息发送时间的 30 分钟之后进行投递。
说明 - 一个 Topic 只能承载一种消息类型。创建 Topic 后不支持修改此 Topic 承载的消息类型。
- 对于分区顺序消息和全局顺序消息类型的 Topic,服务节点异常时可能会出现短暂的消息乱序现象。
- 延迟消息支持自定义毫秒级延迟,延迟时长最长为 3 天或消息保留时长的 3 倍(两者取较小值)。
|
密钥权限 | 确认每个 RocketMQ 密钥对于当前 Topic 的自定义权限;若不设置,每个密钥对于当前 Topic 维持密钥的默认权限。 - 支持批量设置权限。选中批量设置权限,然后选择多个密钥,再设置对于此 Topic 需要的自定义权限。
- 单个设置密钥权限。您可以选择目标密钥,然后设置对于此 Topic 的自定义权限。
例如为密钥 A 的默认权限为拒绝,设置自定义权限为发布,创建 Topic 成功后,密钥 A 对于此 Topic 的权限为发布。
说明 - 创建 Topic 时如果需要设置密钥权限,但还没有可用的密钥,请参见创建密钥。
- 创建 Topic 之后,您也可以按需调整密钥权限,详细说明请参见设置 Topic 密钥权限。
|
单击确定。
操作结果
成功创建 Topic 之后,Topic管理页签中将显示此 Topic 的基本信息,包括 Topic 名称、描述、消息类型和创建时间。
单击 Topic 名称,进入 Topic 详情页面。基本信息区域中展示当前 Topic 的详细信息,包括 Topic 名称、描述、消息类型、创建时间、所属实例和实例 ID。
您还可以在队列信息和消费组信息中查看 Topic 的消费详情,详细说明请参考查看 Topic 消费信息。