调用OnsDLQMessageResendById重发指定 Message ID的死信消息,使该消息能够被Consumer再次消费。

使用说明

死信消息已达最大重试次数,若重发后再次消费失败,则死信队列中将增加一条Message ID相同的消息,可通过控制台死信队列的查询页面或者管控API查看该结果。您可通过同一Message ID的消息出现次数判断重发后依然消费失败的次数。

说明
  • 由于死信消息是经过重试逻辑依然消费失败的消息,通常意味着消费逻辑可能存在问题,故请先查明多次消费失败的原因,再调用本接口重新发送。
  • 当前消息队列RocketMQ版不管理死信重发的状态,重发后消费成功的消息不会从死信队列中移除。需自行管理、判断消息是否需要重发。避免多次无意义地重发,从而造成重复消费。

QPS限制

本接口的单用户QPS限制为10次/秒。超过限制,API调用会被限流,这可能会影响您的业务,请合理调用。更多信息,请参见QPS限制

授权信息

默认仅限阿里云账号使用本接口,RAM用户只有在被授予了相关API操作权限后方可使用。本接口的授权信息如下表所示。更多信息,请参见权限策略和示例

API

Action

Resource(有命名空间)

Resource(无命名空间)

OnsDLQMessageResendById

mq:QueryInstanceBaseInfo

mq:ResendDLQMessage

acs:mq:*:*:{instanceId}%{groupId}

acs:mq:*:*:{groupId}

请求参数

名称 类型 是否必选 示例值 描述
Action String OnsDLQMessageResendById

系统规定参数。取值:OnsDLQMessageResendById

MsgId String 0BC16699343051CD9F1D798E7734****

需查询的消息的ID,即Message ID。

GroupId String GID_test_group_id

需查询的消费端Group ID。

InstanceId String MQ_INST_188077086902****_BXSuW61e

需查询消息所对应的实例ID。

返回数据

名称 类型 示例值 描述
RequestId String D94CC769-4DC3-4690-A868-9D0631B1****

公共参数,每个请求的ID都是唯一的,可用于排查和定位问题。

Data Array of String 0BC16699343051CD9F1D798E7734****

消息ID,即Message ID。

说明 如果重新投递失败,会返回投递失败的Message ID。

示例

请求示例

http(s)://ons.cn-hangzhou.aliyuncs.com/?Action=OnsDLQMessageResendById
&GroupId=GID_test_group_id
&InstanceId=MQ_INST_188077086902****_BXSuW61e
&MsgId=0BC16699343051CD9F1D798E7734****
&<公共请求参数>

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<OnsDLQMessageResendByIdResponse>
<RequestId>D94CC769-4DC3-4690-A868-9D0631B1****</RequestId>
</OnsDLQMessageResendByIdResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/json

{
  "Data" : [ ],
  "RequestId" : "D94CC769-4DC3-4690-A868-9D0631B1****"
}

错误码

访问错误中心查看更多错误码。

控制台操作

除了调用OnsDLQMessageResendById接口,您还可以通过消息队列RocketMQ版控制台重新投递指定的死信消息。具体操作,请参见死信队列