Reenvía un mensaje de cola de mensajes muertos a un grupo de consumidores para su consumo, según un ID de mensaje especificado.
Notas de uso
Cuando el número de reintentos para enviar un mensaje a un grupo de consumidores alcanza el límite máximo y ningún consumidor del grupo lo procesa, el mensaje se agrega a la cola de mensajes muertos de dicho grupo. Este mensaje se considera un mensaje de cola de mensajes muertos. Si reenvía este mensaje al grupo de consumidores y vuelve a fallar el consumo tras alcanzar el número máximo de reintentos, se agregará otro mensaje con el mismo ID a la cola de mensajes muertos. Consulte los detalles del mensaje en la página Dead-letter Queues de la consola de Message Queue for Apache RocketMQ o mediante las operaciones de API correspondientes. Además, determine cuántas veces falló el consumo de un mensaje según la cantidad de entradas con el mismo ID en la cola de mensajes muertos.
Un mensaje de cola de mensajes muertos es aquel que no se pudo consumir después de agotar el número máximo de reintentos. Por lo general, esto se debe a una lógica de consumo incorrecta. Se recomienda solucionar primero los errores de consumo y luego llamar a esta operación para reenviar el mensaje al grupo de consumidores.
Message Queue for Apache RocketMQ no gestiona el estado de los mensajes de cola de mensajes muertos según su estado de consumo. Cuando llama a esta operación para enviar un mensaje de cola de mensajes muertos a un grupo de consumidores y este se consume correctamente, el sistema no lo elimina automáticamente de la cola. Gestione estos mensajes y decida si desea reenviarlos. Elimine los mensajes ya consumidos para evitar reenvíos y reprocesamientos innecesarios.
Límite de solicitudes
Cada cuenta de Alibaba Cloud puede llamar a esta operación hasta 10 veces por segundo. Si el número de solicitudes realizadas en un segundo alcanza este límite, las nuevas solicitudes fallarán, lo cual podría interrumpir su servicio. Para obtener más información sobre los límites de cada operación, consulte Límites de velocidad de la API.
Autorización
De forma predeterminada, solo las cuentas de Alibaba Cloud pueden llamar a esta operación. Un usuario de Resource Access Management (RAM) requiere permisos específicos para ejecutarla. A continuación se describen los permisos necesarios. Para obtener información sobre cómo otorgar permisos, consulte Directivas y ejemplos.
|
API |
Action |
Recurso en una instancia que usa namespace |
Recurso en una instancia que no usa namespace |
|
OnsDLQMessageResendById |
mq:QueryInstanceBaseInfo mq:ResendDLQMessage |
acs:mq:::{instanceId}%{groupId} |
acs:mq:::{groupId} |
Parámetros de solicitud
|
Parámetro |
Tipo |
Obligatorio |
Ejemplo |
Descripción |
|
Action |
String |
Sí |
OnsDLQMessageResendById |
La operación que desea realizar. Establezca el valor en OnsDLQMessageResendById. |
|
MsgId |
String |
Sí |
0BC16699343051CD9F1D798E7734**** |
El ID del mensaje de cola de mensajes muertos que desea enviar a un grupo de consumidores para su procesamiento. |
|
GroupId |
String |
Sí |
GID_test_group_id |
El ID del grupo de consumidores al que desea enviar el mensaje de cola de mensajes muertos. |
|
InstanceId |
String |
Sí |
MQ_INST_188077086902****_BXSuW61e |
El ID de la instancia de Message Queue for Apache RocketMQ que contiene el mensaje. |
Parámetros de respuesta
|
Parámetro |
Tipo |
Ejemplo |
Descripción |
|
RequestId |
String |
D94CC769-4DC3-4690-A868-9D0631B1**** |
El ID de la solicitud. El sistema genera un ID único para cada solicitud. Utilice este ID para solucionar problemas. |
|
Data |
Array of String |
0BC16699343051CD9F1D798E7734**** |
El ID del mensaje. |
Si el envío del mensaje falla, la respuesta incluirá el ID del mensaje.
Ejemplos
Solicitudes de ejemplo
http(s)://ons.cn-hangzhou.aliyuncs.com/?Action=OnsDLQMessageResendById
&GroupId=GID_test_group_id
&InstanceId=MQ_INST_188077086902****_BXSuW61e
&MsgId=0BC16699343051CD9F1D798E7734****
&<Common request parameters>
Respuestas exitosas de ejemplo
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 error
Para consultar la lista de códigos de error, visite el Centro de errores de la API.
Enviar un mensaje de cola de mensajes muertos a un consumidor desde la consola
También puede enviar un mensaje de cola de mensajes muertos a un grupo de consumidores desde la consola de Message Queue for Apache RocketMQ. Para obtener más información, consulte Colas de mensajes muertos.