Tous les produits
Search
Centre de documentation

ApsaraMQ for RocketMQ:Methods and parameters

Dernière mise à jour :Aug 09, 2026

Le SDK Java ApsaraMQ for RocketMQ envoie et consomme des messages en mode push ou pull. Cette rubrique décrit les méthodes et les paramètres de configuration disponibles.

Modes push et pull

ApsaraMQ for RocketMQ distribue les messages aux consommateurs selon l'un des deux modes suivants :

  • Mode push : le broker pousse les messages vers les consommateurs dès qu'ils sont disponibles. Le mode push prend en charge la consommation par lot, ce qui permet de livrer plusieurs messages dans un seul lot.

  • Mode pull : les consommateurs interrogent le broker pour récupérer de nouveaux messages à la demande. Le mode pull vous offre un contrôle direct sur les partitions à lire, le moment de la récupération des messages et la gestion des offsets.

Important

Le mode pull nécessite une instance Enterprise Platinum Edition.

Paramètres de connexion

Configurez les paramètres suivants pour les producteurs et les consommateurs.

Paramètre Description Valeur par défaut
NAMESRV_ADDR Endpoint TCP de l'instance ApsaraMQ for RocketMQ. Vous trouverez cette information sur la page Instance Details de la console. --
AccessKey ID AccessKey utilisé comme identifiant unique pour l'authentification. Consultez la section Créer une paire de clés AccessKey. --
SecretKey Secret AccessKey utilisé comme mot de passe pour l'authentification. Consultez la section Créer une paire de clés AccessKey. --
OnsChannel Canal utilisateur. Définissez la valeur sur CLOUD pour les utilisateurs CloudTmall. ALIYUN

Méthodes du producteur

L'interface du producteur fournit les méthodes suivantes :

messagesendinterface

Paramètres du producteur

Paramètre Description Valeur par défaut Unité
SendMsgTimeoutMillis Délai d'expiration pour l'envoi d'un message. -- Millisecondes
CheckImmunityTimeInSeconds Temps d'attente minimum avant que le broker ne vérifie pour la première fois le statut d'un message transactionnel. -- Secondes
shardingKey Clé de partitionnement qui détermine la partition recevant un message ordonné. -- --

Méthodes du consommateur

Mode push

L'interface du consommateur push fournit les méthodes suivantes :

consumeinterface

Mode pull

L'interface du consommateur pull fournit les méthodes suivantes :

pull_consumer

Interface PullConsumer

public interface PullConsumer extends Admin {

    /**
     * Returns all partitions for the specified topic.
     * Call this method only after the pull consumer has started.
     */
    Set<TopicPartition> topicPartitions(String topic);

    /**
     * Manually assigns partitions to this consumer. Automatic rebalancing
     * is not performed -- make sure all partitions are covered across
     * your consumers. Calling this method again replaces the previous
     * assignment entirely.
     */
    void assign(Collection<TopicPartition> topicPartitions);

    /**
     * Polls for messages. Returns up to maxBatchMessageCount messages,
     * blocking for at most the specified timeout (in milliseconds).
     */
    List<Message> poll(long timeout);

    /**
     * Resets the consumer offset of a partition to a specific position.
     * The offset must be between the partition's minimum and maximum
     * offset. Call this method only after the consumer has started and
     * has been assigned the target partition.
     */
    void seek(TopicPartition topicPartition, long offset);

    /**
     * Resets the consumer offset of a partition to the earliest available
     * message. Requires a started consumer assigned to the target
     * partition.
     */
    void seekToBeginning(TopicPartition topicPartition);

    /**
     * Resets the consumer offset of a partition to the latest message.
     * Requires a started consumer assigned to the target partition.
     */
    void seekToEnd(TopicPartition topicPartition);

    /**
     * Pauses message consumption on the specified partitions.
     */
    void pause(Collection<TopicPartition> topicPartitions);

    /**
     * Resumes message consumption on previously paused partitions.
     */
    void resume(Collection<TopicPartition> topicPartitions);

    /**
     * Returns the offset of the first message stored at or after the
     * given timestamp in the specified partition. The timestamp refers
     * to when the broker stored the message, not when it was sent.
     */
    Long offsetForTimestamp(TopicPartition topicPartition, Long timestamp);

    /**
     * Returns the latest consumer offset for the specified partition.
     */
    Long committed(TopicPartition topicPartition);

    /**
     * Commits the current consumer offsets synchronously. Offsets are
     * first synced to the local client, then written to the broker
     * asynchronously.
     */
    void commitSync();

    /**
     * Listener interface for partition change events.
     */
    interface TopicPartitionChangeListener {
        /**
         * Called when the partitions of a topic change -- for example,
         * after broker scaling adjusts the partition count.
         */
        void onChanged(Set<TopicPartition> topicPartitions);
    }

    /**
     * Registers a listener that fires when the partition count for a
     * topic changes (for example, due to broker scaling). By default,
     * the maximum callback delay is 5 seconds.
     */
    void registerTopicPartitionChangedListener(String topic,
            TopicPartitionChangeListener callback);
}

Paramètres du consommateur

Paramètres communs

Les paramètres suivants s'appliquent aux consommateurs push et pull.

Paramètre Description Valeur par défaut Valeurs valides Unité
GROUP_ID ID du groupe de consommateurs créé dans la console ApsaraMQ for RocketMQ. Consultez la section Termes. -- -- --
MessageModel Modèle de consommation. Valeurs valides : CLUSTERING (consommation en cluster) et BROADCASTING (consommation en diffusion). CLUSTERING CLUSTERING, BROADCASTING --
ConsumeThreadNums Nombre de threads utilisés par le consommateur pour traiter les messages. 20 -- --
MaxReconsumeTimes Nombre maximal de tentatives de nouvelle consommation en cas d'échec. 16 -- --
ConsumeTimeout Durée maximale autorisée pour la consommation d'un seul message. Si ce délai est dépassé, le message est redistribué après un intervalle de nouvelle tentative. Définissez cette valeur en fonction de votre logique métier. 15 -- Minutes
suspendTimeMillis Intervalle de nouvelle tentative pour les messages ordonnés dont la consommation a échoué. -- -- --
maxCachedMessageAmount Nombre maximal de messages mis en cache sur le client consommateur local. Le quota est réparti uniformément entre tous les sujets abonnés. Par exemple, si un consommateur est abonné à 2 sujets et que cette valeur est de 1 000, chaque sujet peut mettre en cache jusqu'à 500 messages. Si un client consommateur extrait plusieurs messages à la fois, le nombre réel de messages mis en cache peut dépasser cette valeur. Définissez cette valeur à environ deux fois le nombre de messages traités par seconde par votre consommateur. 5 000 100–50 000 --
maxCachedMessageSizeInMiB Taille totale maximale des messages mis en cache sur le client consommateur local. 512 16–2 048 MiB
Important

Une valeur trop élevée pour maxCachedMessageAmount ou maxCachedMessageSizeInMiB peut provoquer des erreurs de mémoire insuffisante (OOM) sur le client.

Paramètres de push par lot

Les paramètres suivants contrôlent la manière dont le broker regroupe les messages en mode push avant de les livrer.

Paramètre Description Valeur par défaut Valeurs valides Unité
ConsumeMessageBatchMaxSize Nombre maximal de messages mis en cache livrés à un consommateur dans un seul lot. Lorsque le cache atteint ce seuil, tous les messages mis en cache sont poussés en une seule fois. 32 1–1 024 --
BatchConsumeMaxAwaitDurationInSeconds Temps d'attente maximal avant que les messages mis en cache ne soient poussés vers les consommateurs. 0 0–450 Secondes

Paramètres du mode pull

Les paramètres suivants s'appliquent uniquement aux consommateurs pull.

Paramètre Description Valeur par défaut Valeurs valides Unité
maxCachedMessageSizeInMiB Taille maximale des messages mis en cache par partition sur le client local. 100 16–2 048 MiB
autoCommit Indique si les offsets du consommateur doivent être validés automatiquement. true true, false --
autoCommitIntervalMillis Intervalle entre les validations automatiques des offsets. 5 -- Secondes
pollTimeoutMillis Délai d'expiration pour chaque appel poll(). 5 -- Secondes
Important

Une valeur trop élevée pour maxCachedMessageSizeInMiB peut provoquer des erreurs OOM sur le client.

Pour plus d'informations sur les partitions et les offsets, consultez la section Termes.

Références

Exemples de code pour l'envoi et la consommation de messages :