tencent cloud

消息队列 Pulsar 版

动态与公告
新功能发布记录
集群版本更新记录
产品公告
产品简介
TDMQ 产品系列介绍与选型
什么是消息队列 Pulsar 版
产品优势
应用场景
技术原理
产品系列
开源 Pulsar 版本支持说明
与开源 Pulsar 对比
高可用
配额与限制
基础概念
产品计费
计费概述
价格说明
计费示例
续费说明
查看消费明细
欠费说明
退费说明
快速入门
入门流程指引
准备工作
使用 SDK 收发普通消息
使用 SDK 收发高级特性消息
用户指南
使用流程指引
配置账号权限
新建集群
配置命名空间
配置 Topic
连接集群
管理集群
查询消息及轨迹
跨地域复制
查看监控和配置告警
实践教程
客户端使用实践
异常消费者隔离
限流机制说明
交易对账
消息幂等性
消息压缩
迁移指南
单写多读集群迁移方案
虚拟集群平滑迁移至专业集群
API 参考
API 概览
SDK 参考
SDK 概述
SDK 配置参数推荐
TCP 协议(Pulsar 社区版)
安全与合规
权限管理
删除保护
云 API 审计
常见问题
监控相关
客户端相关
服务协议
服务等级协议
TDMQ 政策
联系我们
词汇表

使用消息重试和死信队列

PDF
聚焦模式
字号
最后更新时间: 2025-12-24 15:18:52

操作背景

重试 Topic 是一种为了确保消息被正常消费而设计的 Topic 。当某些消息第一次被消费者消费后,没有得到正常的回应,则会进入重试 Topic 中,当重试达到一定次数后,停止重试,投递到死信 Topic 中。
当消息进入到死信队列中,表示 TDMQ Pulsar 版已经无法自动处理这批消息,一般这时就需要人为介入来处理这批消息。您可以通过编写专门的客户端来订阅死信 Topic,处理这批之前处理失败的消息。
更多关于消息重试与死信的介绍请参考文档消息重试与死信机制
本文以官网提供的 Demo 为例,介绍消息重试与死信队列功能与使用方式。

操作步骤

步骤1. 在控制台新建 Pulsar 资源

1. 登录 TDMQ Pulsar 版控制台,创建一个集群和命名空间。
2. 在左侧导航栏选择 Topic 管理页签,当前集群和命名空间分别勾选入门课程中创建好的集群和命名空间。
3. 单击新建,输入 Topic 名称和说明,其他选项可保持默认,单击保存,创建一个 topic。

4. 单击新建好的 Topic 操作列的新增订阅,输入订阅名称,开启自动创建重试&死信队列,重试和死信默认后缀选择 Pulsar 社区版(大写),为刚新建好的 Topic 创建一个订阅关系并开启重试&死信队列。

5. 提交后,可以看到系统自动创建好的重试队列和死信队列。

6. 单击操作列的更多 > 查看订阅/消费者,可看到刚创建好的订阅。


步骤2. 下载 Demo 并配置相关参数

1. 下载官方 Demo并解压。

2. 修改 Constant.java 参数。

参数
说明
SERVICE_URL
集群接入地址,可以在控制台集群管理页面查看并复制。



AUTHENTICATION
角色的密钥,角色密钥可以在角色管理中复制。




步骤3. 生产消息

1. 进入/deadletter目录下,修改 SimpleProducer.java 参数。

.topic:填写创建好的 topic 名称,需要填入完整路径,即persistent://clusterid/namespace/Topic,clusterid/namespace/topic 的部分可以从控制台上 Topic管理页面直接复制。

2. 编译并运行 SimpleProducer.java 程序发送消息。运行结果如下:

3. 登录 TDMQ Pulsar 版控制台,在消息查询页面,可以看到向 topic 中生产的消息。




步骤4. 消费消息

1. 修改 RetryConsumer.java 程序参数。

.retryLetterTopic:重试topic名称。
.deadLetterTopic:死信topic名称。
.topic:topic名称。
以上3个 topic 需要填入完整路径,即 persistent://clusterid/namespace/Topicclusterid/namespace/topic的部分可以从控制台上 Topic 管理页面直接复制。

.subscriptionName:需要写入订阅名,可在 Topic 消费者界面查看。

2. 编译并运行消息重试程序 RetryConsumer.java 。运行结果如下:

3. 登录 TDMQ Pulsar 版控制台,在消息查询页面可以看到,重试 topic 中展示了2条消息,死信 topic 中展示了1条消息,代表消息经过2次重试投递后,被投递到死信队列。





步骤5. 消费死信消息

1. 修改 DeadConsumer.java 参数。

.topic:填写死信topic名称, 需要填入完整路径,即 persistent://clusterid/namespace/Topicclusterid/namespace/topic的部分可以从控制台上 Topic 管理页面直接复制。



.subscriptionName:需要写入订阅名,可在 Topic 消费者界面查看。

2. 编译并运行消息重试程序 RetryConsumer.java 。运行结果如下:

3. 登录 TDMQ Pulsar 版控制台,在死信 topic 消费者页面,消息堆积量变为0条,证明消息已经被消费。




帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈