Todos los productos
Search
Centro de documentos

ApsaraMQ for RocketMQ:Consume messages

Última actualización: Sep 21, 2026

Extraiga mensajes de un topic de ApsaraMQ for RocketMQ mediante HTTP. El broker devuelve hasta 16 mensajes por solicitud en formato XML. Cada mensaje incluye el cuerpo del mensaje, un hash MD5, un identificador de recibo (receipt handle) para la confirmación, marcas de tiempo y atributos del mensaje.

Solicitud

GET /topics/<TopicName>/messages?ns=<instance-id>&consumer=<group-id>&tag=<tag>&numOfMessages=<count>&waitseconds=<seconds> HTTP/1.1
Importante

La longitud total de la línea de solicitud no debe superar los 1024 caracteres.

Parámetros

Parámetro

Obligatorio

Descripción

TopicName

Sí

Nombre del topic del que se consumirán los mensajes.

ns

Condicional

ID de la instancia. Es obligatorio para las instancias que tienen namespaces. Revise la página Instance Details en la consola de ApsaraMQ for RocketMQ para comprobar si su instancia cuenta con un namespace. Para obtener más información, consulte Use instances.

consumer

Sí

ID del grupo de consumidores.

tag

No

Etiqueta del mensaje para filtrar. Omítala para extraer todos los mensajes. Separe varias etiquetas con barras verticales dobles (`

`). Ejemplo: `TagA

TagB`.

numOfMessages

Sí

Número máximo de mensajes que se devolverán. Valores válidos: de 1 a 16.

waitseconds

No

Tiempo de espera del sondeo largo (long polling), en segundos. Valores válidos: de 0 a 30. Establezca este valor en 0 u omítalo para usar el sondeo corto (short polling). Consulte Sondeo largo frente a sondeo corto.

Cuerpo de la solicitud

Ninguna.

Tipos de instancia

ApsaraMQ for RocketMQ cuenta con dos tipos de instancias:

  • Instancia predeterminada: no tiene namespace. Los nombres de los recursos deben ser únicos a nivel global.

  • Instancia nueva: tiene un namespace. Los nombres de los recursos solo necesitan ser únicos dentro de la instancia.

Sondeo largo frente a sondeo corto

El parámetro waitseconds controla cómo procesa el broker las solicitudes cuando no hay mensajes disponibles.

Modo

Comportamiento

Sondeo largo (waitseconds > 0)

El broker mantiene abierta la solicitud hasta que llega un mensaje o transcurre el tiempo de espera.

Sondeo corto (waitseconds = 0 u omitido)

El broker responde de inmediato, incluso si no hay mensajes disponibles. El cliente debe enviar solicitudes repetidas.

Importante

El sondeo corto genera un volumen alto de respuestas vacías cuando no se producen mensajes, y cada respuesta implica API call fees. Use el sondeo largo con un valor mayor de waitseconds para reducir costos.

Respuesta

Éxito (HTTP 200)

El broker devuelve uno o varios elementos <Message> en formato XML. Cada elemento contiene los campos a continuación:

Parámetro

Tipo

Descripción

MessageId

String

ID único del mensaje.

MessageBodyMD5

String

Hash MD5 del cuerpo del mensaje.

MessageBody

String

Contenido del cuerpo del mensaje.

ReceiptHandle

String

Identificador para confirmar el mensaje. Pase este identificador a la operación de confirmación (eliminación) para confirmar el consumo. Es de un solo uso y caduca en NextConsumeTime. Se emite un identificador nuevo en cada reintento.

PublishTime

String

Hora de publicación del mensaje. Marca de tiempo UNIX en milisegundos.

FirstConsumeTime

String

Hora del primer consumo del mensaje. Marca de tiempo UNIX en milisegundos.

NextConsumeTime

String

Hora en la que el mensaje queda disponible para reintentos. Marca de tiempo UNIX en milisegundos.

ConsumedTimes

String

Número de reintentos de consumo.

MessageTag

String

Etiqueta del mensaje.

Properties

String

Atributos del mensaje serializados en formato clave-valor. Consulte Formato de las propiedades del mensaje.

Nota

Mediante HTTP, los mensajes no ordenados se reintentan cada 5 minutos y los mensajes ordenados cada minuto. Cada mensaje admite hasta 288 reintentos.

Formato de las propiedades del mensaje

El campo Properties utiliza el formato key1:value1|key2:value2|key3:value3.

Clave

Tipo

Descripción

KEYS

String

Clave del mensaje.

__STARTDELIVERTIME

Long

Hora de entrega programada para un mensaje diferido. Marca de tiempo UNIX en milisegundos.

__TransCheckT

Long

Retraso, en segundos, antes de la primera comprobación del estado de una transacción para un mensaje transaccional. Valores válidos: de 10 a 300.

Sin mensajes disponibles (HTTP 404)

Si no hay mensajes disponibles, el broker devuelve HTTP 404 con el código de error MessageNotExist. Este es el comportamiento esperado y no un error.

Parámetro

Tipo

Descripción

Code

String

Código de error. MessageNotExist indica que no hay mensajes disponibles.

Message

String

Mensaje de error.

RequestId

String

ID de la solicitud.

HostId

String

Host que envió la solicitud.

Respuestas de ejemplo

Mensajes disponibles

<?xml version="1.0" ?>
<Messages xmlns="http://mq.aliyuncs.com/doc/v1">
  <Message>
    <MessageId>1E057D5E6EAD42A579937046FE17****</MessageId>
    <MessageBodyMD5>0CC175B9C0F1B6A831C399E26977****</MessageBodyMD5>
    <MessageBody>a</MessageBody>
    <ReceiptHandle>1E057D5E6EAD42A579937046FE17****-MTI5N****</ReceiptHandle>
    <PublishTime>1571742900759</PublishTime>
    <FirstConsumeTime>1571742902463</FirstConsumeTime>
    <NextConsumeTime>1571743202463</NextConsumeTime>
    <ConsumedTimes>1</ConsumedTimes>
    <MessageTag>Tag</MessageTag>
    <Properties>KEYS:MessageKey|__BORNHOST:30.5.**.**|</Properties>
  </Message>
  <Message>
    <MessageId>1E057D5E6EAD42A579937046FE17****</MessageId>
    <MessageBodyMD5>0CC175B9C0F1B6A831C399E26977****</MessageBodyMD5>
    <MessageBody>a</MessageBody>
    <ReceiptHandle>1E057D5E6EAD42A579937046FE17****-MTI5N****</ReceiptHandle>
    <PublishTime>1571742900759</PublishTime>
    <FirstConsumeTime>1571742902463</FirstConsumeTime>
    <NextConsumeTime>1571743202463</NextConsumeTime>
    <ConsumedTimes>1</ConsumedTimes>
    <MessageTag>Tag</MessageTag>
    <Properties>KEYS:MessageKey|__BORNHOST:30.5.**.**|</Properties>
  </Message>
</Messages>

Sin mensajes disponibles

<?xml version="1.0" ?>
<Error xmlns="http://mq.aliyuncs.com/doc/v1">
  <Code>MessageNotExist</Code>
  <Message>Message not exist.</Message>
  <RequestId>5DAEE3FF463541AD6E0322EB</RequestId>
  <HostId>http://123.mqrest.cn-hangzhou.aliyuncs.com</HostId>
</Error>