Envia uma mensagem de dead-letter para um grupo de consumidores com base em um ID de mensagem especificado.
Observações de uso
Quando o número de tentativas de envio de uma mensagem para consumo atinge o limite máximo e nenhum consumidor do grupo a processa, o sistema adiciona essa mensagem à fila de dead-letter do grupo. Essa mensagem passa a ser classificada como dead-letter. Se você reenviar a mensagem de dead-letter para o grupo de consumidores e ela falhar novamente após atingir o número máximo de tentativas, uma nova mensagem de dead-letter com o mesmo ID será adicionada à fila. Visualize os detalhes da mensagem de dead-letter na página Dead-letter Queues no console do Message Queue for Apache RocketMQ ou por meio das operações de API de consulta de mensagens de dead-letter. A quantidade de mensagens de dead-letter com o mesmo ID na fila indica o número de falhas de consumo daquela mensagem.
Uma mensagem de dead-letter resulta de falhas de consumo após o esgotamento do limite de tentativas. Em geral, isso ocorre devido a lógica de consumo incorreta. Recomendamos solucionar a causa raiz das falhas antes de chamar esta operação para reenviar a mensagem ao grupo de consumidores.
O Message Queue for Apache RocketMQ não gerencia o status das mensagens de dead-letter com base no consumo delas. Após chamar esta operação para enviar uma mensagem de dead-letter a um grupo de consumidores e ela ser consumida com sucesso, o sistema não a remove automaticamente da fila de dead-letter. Gerencie essas mensagens e decida quando reenviá-las para consumo. Remova as mensagens já consumidas para evitar reenvios e reprocessamentos desnecessários.
Limite de solicitações
Cada conta Alibaba Cloud pode chamar esta operação até 10 vezes por segundo. Se o volume de solicitações dentro de um segundo atingir esse limite, as novas requisições falharão, o que pode interromper seus serviços. Para mais informações sobre os limites de cada operação, consulte Limites de taxa de API.
Autorização
Por padrão, apenas contas Alibaba Cloud têm permissão para chamar esta operação. Usuários do Resource Access Management (RAM) precisam receber as permissões necessárias previamente. A tabela a seguir descreve as permissões obrigatórias para usuários RAM executarem esta operação. Para saber como conceder permissões, consulte Políticas e exemplos.
|
API |
Action |
Recurso em instância com namespace |
Recurso em instância sem namespace |
|
OnsDLQMessageResendById |
mq:QueryInstanceBaseInfo mq:ResendDLQMessage |
acs:mq:::{instanceId}%{groupId} |
acs:mq:::{groupId} |
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Exemplo |
Descrição |
|
Action |
String |
Sim |
OnsDLQMessageResendById |
Operação a ser executada. Defina o valor como OnsDLQMessageResendById. |
|
MsgId |
String |
Sim |
0BC16699343051CD9F1D798E7734**** |
ID da mensagem de dead-letter a ser enviada para consumo no grupo de consumidores. |
|
GroupId |
String |
Sim |
GID_test_group_id |
ID do grupo de consumidores destinatário da mensagem de dead-letter. |
|
InstanceId |
String |
Sim |
MQ_INST_188077086902****_BXSuW61e |
ID da instância do Message Queue for Apache RocketMQ que contém a mensagem. |
Parâmetros de resposta
|
Parâmetro |
Tipo |
Exemplo |
Descrição |
|
RequestId |
String |
D94CC769-4DC3-4690-A868-9D0631B1**** |
ID da solicitação. O sistema gera um ID exclusivo para cada requisição, útil para solução de problemas. |
|
Data |
Array of String |
0BC16699343051CD9F1D798E7734**** |
ID da mensagem. |
Em caso de falha no envio da mensagem, a resposta retornará o ID correspondente.
Exemplos
Exemplos de solicitações
http(s)://ons.cn-hangzhou.aliyuncs.com/?Action=OnsDLQMessageResendById
&GroupId=GID_test_group_id
&InstanceId=MQ_INST_188077086902****_BXSuW61e
&MsgId=0BC16699343051CD9F1D798E7734****
&<Common request parameters>
Exemplos de respostas de sucesso
Formato XML
HTTP/1.1 200 OK
Content-Type:application/xml
<OnsDLQMessageResendByIdResponse>
<RequestId>D94CC769-4DC3-4690-A868-9D0631B1****</RequestId>
</OnsDLQMessageResendByIdResponse>
Formato JSON
HTTP/1.1 200 OK
Content-Type:application/json
{
"Data" : [ ],
"RequestId" : "D94CC769-4DC3-4690-A868-9D0631B1****"
}
Códigos de erro
Para obter a lista de códigos de erro, acesse o API Error Center.
Enviar uma mensagem de dead-letter para um consumidor pelo console
Também é possível enviar uma mensagem de dead-letter para consumo diretamente no console do Message Queue for Apache RocketMQ. Para mais detalhes, consulte Filas de dead-letter.