Tüm Ürünler
Search
Belge Merkezi

ApsaraMQ for RocketMQ:Methods and parameters

Son Güncelleme:Oct 04, 2026

ApsaraMQ for RocketMQ Java SDK, mesajları push (gönderme) veya pull (çekme) modunda gönderir ve tüketir. Bu konuda mevcut yöntemler ve yapılandırma parametreleri açıklanmaktadır.

Push ve pull modları

ApsaraMQ for RocketMQ, mesajları tüketicilere iki moddan birinde iletir:

  • Push modu: Broker, mesajlar kullanılabilir hale geldikçe bunları tüketicilere iter. Push modu, toplu iş tüketimini destekler ve birden çok mesajı tek bir toplu iş olarak teslim eder.

  • Pull modu: Tüketiciler, talebe bağlı olarak broker'dan yeni mesajları yoklar. Pull modu, hangi bölümlerden okuma yapılacağı, mesajların ne zaman çekileceği ve ofsetlerin nasıl yönetileceği üzerinde doğrudan kontrol sağlar.

Önemli

Pull modu, Enterprise Platinum Edition örneği gerektirir.

Bağlantı parametreleri

Hem üreticiler hem de tüketiciler için aşağıdaki parametreleri yapılandırın.

Parametre Açıklama Varsayılan
NAMESRV_ADDR ApsaraMQ for RocketMQ örneğinin TCP uç noktası. Bu bilgiyi konsoldaki Instance Details sayfasında bulabilirsiniz. --
AccessKey Kimlik doğrulama için benzersiz tanımlayıcı olarak kullanılan AccessKey ID. Bkz. AccessKey çifti oluşturma. --
SecretKey Kimlik doğrulama için parola olarak kullanılan AccessKey gizli anahtarı. Bkz. AccessKey çifti oluşturma. --
OnsChannel Kullanıcı kanalı. CloudTmall kullanıcıları için CLOUD olarak ayarlayın. ALIYUN

Üretici yöntemleri

Üretici arabirimi aşağıdaki yöntemleri sunar:

messagesendinterface

Üretici parametreleri

Parametre Açıklama Varsayılan Birim
SendMsgTimeoutMillis Mesaj gönderme zaman aşımı. -- Milisaniye
CheckImmunityTimeInSeconds Broker'ın işlemli bir mesajın durumunu ilk kez kontrol etmeden önceki minimum bekleme süresi. -- Saniye
shardingKey Sıralı bir mesajın hangi parçaya iletileceğini belirleyen bölümleme anahtarı. -- --

Tüketici yöntemleri

Push modu

Push tüketici arabirimi aşağıdaki yöntemleri sunar:

consumeinterface

Pull modu

Pull tüketici arabirimi aşağıdaki yöntemleri sunar:

pull_consumer

PullConsumer arabirimi

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);
}

Tüketici parametreleri

Ortak parametreler

Aşağıdaki parametreler hem push hem de pull tüketicileri için geçerlidir.

Parametre Açıklama Varsayılan Geçerli değerler Birim
GROUP_ID ApsaraMQ for RocketMQ konsolunda oluşturulan tüketici grubu kimliği. Bkz. Terimler. -- -- --
MessageModel Tüketim modeli. Geçerli değerler: CLUSTERING (kümeleme tüketimi) ve BROADCASTING (yayın tüketimi). CLUSTERING CLUSTERING, BROADCASTING --
ConsumeThreadNums Tüketicinin mesajları işlemek için kullandığı iş parçacığı sayısı. 20 -- --
MaxReconsumeTimes Bir mesajın tüketilememesi durumunda yapılacak maksimum yeniden deneme sayısı. 16 -- --
ConsumeTimeout Tek bir mesajı tüketmek için izin verilen maksimum süre. Aşılması durumunda mesaj, bir yeniden deneme aralığından sonra yeniden iletilir. Bu değeri iş mantığınıza göre ayarlayın. 15 -- Dakika
suspendTimeMillis Tüketilemeyen sıralı mesajlar için yeniden deneme aralığı. -- -- --
maxCachedMessageAmount Yerel tüketici istemcisinde önbelleğe alınan maksimum mesaj sayısı. Kota, abone olunan tüm konular arasında eşit olarak paylaşılır. Örneğin, bir tüketici 2 konuya abone olursa ve bu değer 1.000 ise her konu en fazla 500 mesajı önbelleğe alabilir. Bir tüketici istemcisi aynı anda birden çok mesaj çekerse önbelleğe alınan gerçek mesaj sayısı bu değeri aşabilir. Bu değeri, tüketicinizin saniyede işlediği mesaj sayısının yaklaşık iki katı olarak ayarlayın. 5.000 100–50.000 --
maxCachedMessageSizeInMiB Yerel tüketici istemcisindeki önbelleğe alınan mesajların toplam maksimum boyutu. 512 16–2.048 MiB
Önemli

maxCachedMessageAmount veya maxCachedMessageSizeInMiB değerlerinin çok yüksek ayarlanması istemcide bellek yetersizliği (OOM) hatalarına neden olabilir.

Toplu iş push parametreleri

Aşağıdaki parametreler, broker'ın push modunda mesajları tüketicilere iletmeden önce nasıl toplu iş haline getireceğini kontrol eder.

Parametre Açıklama Varsayılan Geçerli değerler Birim
ConsumeMessageBatchMaxSize Tek bir toplu işte bir tüketiciye iletilen maksimum önbelleğe alınmış mesaj sayısı. Önbellek bu eşiğe ulaştığında tüm önbelleğe alınmış mesajlar bir seferde gönderilir. 32 1–1.024 --
BatchConsumeMaxAwaitDurationInSeconds Önbelleğe alınan mesajların tüketicilere bir seferde gönderilmesinden önceki maksimum bekleme süresi. 0 0–450 Saniye

Pull modu parametreleri

Aşağıdaki parametreler yalnızca pull tüketicileri için geçerlidir.

Parametre Açıklama Varsayılan Geçerli değerler Birim
maxCachedMessageSizeInMiB Yerel istemcideki her bölüm başına önbelleğe alınan mesajların maksimum boyutu. 100 16–2.048 MiB
autoCommit Tüketici ofsetlerinin otomatik olarak işlenip işlenmeyeceği. true true, false --
autoCommitIntervalMillis Otomatik ofset işlemeleri arasındaki aralık. 5 -- Saniye
pollTimeoutMillis Her poll() çağrısı için zaman aşımı. 5 -- Saniye
Önemli

maxCachedMessageSizeInMiB değerinin çok yüksek ayarlanması istemcide OOM hatalarına neden olabilir.

Bölümler ve ofsetler hakkında daha fazla bilgi için bkz. Terimler.

Kaynaklar

Mesaj gönderme ve tüketme örnek kodları: