Tous les produits
Search
Centre de documentation

ApsaraMQ for RocketMQ:Consume messages

Dernière mise à jour :Sep 21, 2026

Récupérez des messages depuis un topic ApsaraMQ for RocketMQ via HTTP. Le broker renvoie jusqu'à 16 messages par requête au format XML. Chaque message inclut le corps du message, un condensé MD5, un handle de réception pour l'accusé de réception, des horodatages et des attributs de message.

Requête

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

La longueur totale de la ligne de requête ne doit pas dépasser 1 024 caractères.

Paramètres

Paramètre Obligatoire Description
TopicName Oui Nom du topic à partir duquel consommer les messages.
ns Conditionnel ID d'instance. Requis pour les instances disposant de namespaces. Consultez la page Instance Details dans la console ApsaraMQ for RocketMQ pour déterminer si votre instance possède un namespace. Pour plus d'informations, consultez la rubrique Utiliser des instances.
consumer Oui ID du groupe de consommateurs.
tag Non Tag de message pour le filtrage. Omettez ce paramètre pour récupérer tous les messages. Séparez plusieurs tags par des barres verticales doubles (`

`). Exemple : `TagA

TagB`.

numOfMessages Oui Nombre maximal de messages à renvoyer. Valeurs valides : 1 à 16.
waitseconds Non Délai d'expiration du long polling en secondes. Valeurs valides : 0 à 30. Définissez sur 0 ou omettez le paramètre pour utiliser le short polling. Consultez la section Long polling vs. short polling.

Corps de la requête

Aucun.

Types d'instances

ApsaraMQ for RocketMQ propose deux types d'instances :

  • Default instance -- Aucun namespace. Les noms de ressources doivent être uniques globalement.

  • New instance -- Dispose d'un namespace. Les noms de ressources doivent uniquement être uniques au sein de l'instance.

Long polling vs. short polling

Le paramètre waitseconds contrôle la manière dont le broker gère les requêtes lorsqu'aucun message n'est disponible.

Mode Comportement
Long polling (waitseconds > 0) Le broker maintient la requête ouverte jusqu'à l'arrivée d'un message ou jusqu'à l'expiration du délai.
Short polling (waitseconds = 0 ou omis) Le broker répond immédiatement, même si aucun message n'est disponible. Le client doit interroger le serveur de manière répétée.
Important

Le short polling génère un volume élevé de réponses vides lorsque aucun message n'est produit, et chaque réponse entraîne des frais d'appel API. Utilisez le long polling avec une valeur waitseconds plus élevée pour réduire les coûts.

Réponse

Succès (HTTP 200)

Le broker renvoie un ou plusieurs éléments <Message> en XML. Chaque élément contient les champs suivants :

Paramètre Type Description
MessageId String ID unique du message.
MessageBodyMD5 String Condensé MD5 du corps du message.
MessageBody String Contenu du corps du message.
ReceiptHandle String Handle permettant d'accuser réception du message. Transmettez ce handle à l'opération d'accusé de réception (suppression) pour confirmer la consommation. À usage unique -- expire à NextConsumeTime. Un nouveau handle est émis à chaque nouvelle tentative.
PublishTime String Heure de publication du message. Horodatage UNIX en millisecondes.
FirstConsumeTime String Heure de la première consommation du message. Horodatage UNIX en millisecondes.
NextConsumeTime String Heure à laquelle le message devient disponible pour une nouvelle tentative. Horodatage UNIX en millisecondes.
ConsumedTimes String Nombre de tentatives de consommation.
MessageTag String Tag du message.
Properties String Attributs de message sérialisés au format clé-valeur. Consultez la section Format des propriétés de message.
Remarque

Via HTTP, les messages non ordonnés font l'objet d'une nouvelle tentative toutes les 5 minutes, tandis que les messages ordonnés sont réessayés toutes les minutes. Chaque message peut faire l'objet d'un maximum de 288 nouvelles tentatives.

Format des propriétés de message

Le champ Properties utilise le format key1:value1|key2:value2|key3:value3.

Clé Type Description
KEYS String Clé du message.
__STARTDELIVERTIME Long Heure de livraison planifiée pour un message planifié. Horodatage UNIX en millisecondes.
__TransCheckT Long Délai avant la première vérification de l'état de la transaction pour un message transactionnel, en secondes. Valeurs valides : 10 à 300.

Aucun message disponible (HTTP 404)

Si aucun message n'est disponible, le broker renvoie un code HTTP 404 avec le code d'erreur MessageNotExist. Il s'agit d'un comportement attendu, et non d'une erreur.

Paramètre Type Description
Code String Code d'erreur. MessageNotExist indique qu'aucun message n'est disponible.
Message String Message d'erreur.
RequestId String ID de la requête.
HostId String Hôte ayant envoyé la requête.

Exemples de réponses

Messages 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>

Aucun message disponible

<?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>