操作场景
Topic 是 TDMQ Pulsar 版中的核心概念。Topic 通常用来对系统生产的各类消息做一个集中的分类和管理,例如和交易的相关消息可以放在一个名为 “trade” 的 Topic 中,供其他消费者订阅。
在实际应用场景中,一个 Topic 往往代表着一个业务聚合,由开发者根据自身系统设计、数据架构设计来决定如何设计不同的 Topic。
本文档可以指导您使用 TDMQ Pulsar 版时,利用 Topic 对消息进行分类管理。
前提条件
已创建好对应的命名空间。
操作步骤
创建 Topic
1. 登录 TDMQ Pulsar 版控制台,在左侧导航栏单击 Topic 管理。
2. 在 Topic 管理页面,单击新建,弹出新建 Topic 的对话框。
3. 在新建 Topic 对话框中,填写以下信息:
Topic 名称:不能为空,支持数字字母以及符号 “-_=:.”,长度不超过128个字符。
Topic 类型:支持持久化和非持久化两种类型。
持久化:持久化的消息会以多副本形式落盘,保证消息不丢失,多适用于金融、交易等高可靠场景。
非持久化:非持久化主题的消息不会落盘,直接投递给当前在线的订阅,投递完成即删除。如果当前没有在线订阅,会直接删除,消息在服务端不保留。多适用于数据可靠性要求不高、流处理等场景(非持久化消息仅支持普通消息的即时收发,不支持消息查询、消息轨迹、延迟消息、消息过滤、消息回溯等功能)。
使用注意事项:
非持久化类型主题,在收发消息的时候,要填写完整的前缀为
non-persistent://
主题名。是否分区:
Pulsar 内部可以保证单个分区内的消息有序,即如果创建1分区的 Topic 则可以保证全局有序。
单分区的 Topic 会在性能上弱于多分区 Topic,如果希望兼顾性能与有序性, 可以参见 订阅模式 使用 Key-shared 模式进行消费,实现局部有序,标记同一个 key 让需要有序的消息落在同一分区即可。
消息 TTL,即 Topic 级别的 TTL ,默认等于命名空间策略,优先级高于命名空间 TTL。仅专业集群支持,存量集群需升级支持,请联系我们。
说明:填写 Topic 的说明信息,不超过128字符。
4. 单击保存,在 Topic 列表中即可看见创建好的 Topic。
查询 Topic
您也可以在 Topic 列表中通过类型和创建来源对 Topic 进行筛选。
编辑 Topic
1. 在 Topic 管理 中,找到需要编辑的 Topic ,单击操作栏中的更多 > 编辑。
2. 在弹出的对话框中可以对 Topic 的分区数(全局顺序型消息只有1个分区,不可编辑)和说明进行编辑。
3. 单击提交即完成对 Topic 的编辑。
发送消息
TDMQ Pulsar 版控制台支持手动发送消息,在控制台进行相应的操作即可实现消息发送给指定的 Topic 。
1. 在 Topic 管理 中,找到需要发送消息的 Topic ,单击操作列中的发送消息。
2. 在弹出的对话框中输入消息内容。消息长度不超过64KB。
3. 单击提交,完成消息的发送。消息发送后即可被 Topic 下的任意订阅者消费。
新增订阅
TDMQ Pulsar 版控制台支持手动创建订阅,在控制台进行相应的操作后即可完成订阅的创建。
1. 在 Topic 管理 中,找到需要创建订阅的 Topic ,单击操作列中的新增订阅。
2. 在弹出的对话框中输入订阅的名称和说明。
订阅名称:长度不超过128个字符
自动创建重试&死信队列:可以选择是否自动创建重试和死信 Topic
说明:不超过200字符
3. 单击保存完成创建。
创建后可通过单击操作列的查看订阅,查看订阅了该 Topic 的订阅,即可在列表中看到刚刚创建的订阅。
说明
如果选择自动创建重试和死信 Topic,TDMQ Pulsar 版会自动帮用户创建好一个重试队列和死信队列,以两个新的 Topic 呈现于 Topic 列表。该 Topic 命名为:
2.9.2 版本集群:[Topic 名称]-[订阅名]-RETRY
2.7.2 版本集群:[订阅名]-RETRY
关于重试队列和死信队列的概念和用法请参见 重试队列和死信队列。
删除 Topic
注意
删除了 Topic 之后也会清除该 Topic 下积累的未消费消息,请谨慎执行。
1. 在 Topic 管理中,找到需要删除的 Topic ,单击操作列中的更多 > 删除,或者勾选多个 Topic 之后单击 Topic 列表顶部的删除。
2. 在弹出的提示框中,单击删除,完成删除。
强制删除:开启后,Topic 有订阅也可连带删除。