Tüm Ürünler
Search
Belge Merkezi

ApsaraMQ for RocketMQ:Clustering consumption and broadcasting consumption

Son Güncelleme:Oct 04, 2026

ApsaraMQ for RocketMQ mesajları tüketicilere iki moddan birinde iletir: kümeleme tüketimi (her mesaj gruptaki yalnızca bir tüketiciye gider) veya yayınlama tüketimi (her mesaj gruptaki tüm tüketicilere gider). Varsayılan mod kümeleme tüketimidir.

Tüketim modu seçin

Aynı grup kimliğiyle tanımlanan birden çok tüketici bir tüketici grubu oluşturur. Aynı gruptaki tüketiciler aynı tüketim mantığını kullanmalı, aynı konulara ve etiketlere abone olmalı ve aynı tüketim modunu kullanmalıdır. Daha fazla bilgi için bkz. Abonelik tutarlılığı.

Gruptaki tüketicilerin mesajları nasıl alması gerektiğine bağlı olarak uygun modu seçin:

Hedef Mod Çalışma şekli
Mesajları paralel işleme için tüketiciler arasında dağıtın Kümeleme tüketimi Her mesaj gruptaki tam olarak bir tüketiciye iletilir. Tüketiciler iş yükünü paylaşır.
Her mesajı her tüketiciye iletin Yayınlama tüketimi Her mesaj gruptaki tüm tüketicilere iletilir. Her tüketici tam mesaj akışını işler.
Bir tüketim modunu açıkça ayarlamazsanız kümeleme tüketimi kullanılır.

Kümeleme tüketimi

Kümeleme tüketimi modunda ApsaraMQ for RocketMQ bir konudaki mesajları gruptaki tüketiciler arasında dağıtır. Her mesajı yalnızca bir tüketici tüketir.

Clustering consumption

Kullanım senaryoları

  • Yüksek aktarım hızı için yük dengeleme: Büyük hacimli mesajları birden çok tüketiciye yayarak her birinin bir alt kümeyi işlemesini sağlayın. Daha fazla tüketici eklemek aktarım hızını artırır.

  • Dağıtılmış veri işleme: İşleri birden çok düğümde bölümlere ayırarak her düğümün verinin bir bölümünü bağımsız olarak işlemesini sağlayın.

Kullanım notları

  • Başarısız olan bir mesaj mutlaka aynı tüketiciye yeniden gönderilmez. Yeniden dengeleme sonrasında mesaj gruptaki farklı bir tüketiciye gidebilir.

  • Tüketici ilerlemesi (ofsetler) ApsaraMQ for RocketMQ aracılarında saklanır. Bir tüketici yeniden başlatıldığında son kaydedilen ofsetten devam eder; böylece hiçbir mesaj atlanmaz.

  • Mesaj yeniden denemesi desteklenir. Bir tüketici bir mesajı işleyemezse aracı mesajı otomatik olarak yeniden iletir. Ayrıntılar için bkz. Mesaj yeniden denemesi.

Yayınlama tüketimi

Yayınlama tüketimi modunda ApsaraMQ for RocketMQ her mesajı gruptaki tüm tüketicilere iletir. Her mesajı her tüketici en az bir kez tüketir. Bu mod; sipariş işleme gibi birden çok tüketicinin aynı mesaj grubunu eş zamanlı olarak işlediği senaryolar için uygundur.

Broadcasting consumption

Kullanım senaryoları

  • Bildirimler ve duyurular: Bir güncellemeyi tüm abonelere göndererek her tüketicinin buna göre hareket etmesini sağlayın.

  • Gerçek zamanlı veri senkronizasyonu: Yerel önbellekleri veya durumu tutarlı tutmak için dağıtılmış bir sistemdeki tüm düğümlere veri değişikliklerini yayınlayın.

Kullanım notları

  • Otomatik yeniden deneme yok: Aracı, bir tüketicinin işleyemediği mesajları yeniden iletmez. Tüketim hatalarını uygulama mantığınızda ele alın.

  • Yeniden başlatma davranışı: Bir tüketici yeniden başlatıldığında en son mesajdan başlayarak tüketmeye devam eder. Tüketici çevrimdışıyken yayınlanan mesajlar atlanır.

  • Daha yüksek kaynak kullanımı: Her tüketici her mesajı işlediğinden kaynak tüketimi katlanır. Kullanım senaryonuz özellikle çoğaltma teslimatı gerektirmiyorsa kümeleme tüketimini kullanın.

Özellik karşılaştırması

Yayınlama tüketimi, çoğaltma teslimatı karşılığında özellik zenginliğinden ödün verir. Aşağıdaki tabloda her modun destekledikleri listelenmiştir.

Özellik Kümeleme tüketimi Yayınlama tüketimi
TCP istemci SDK'ları Desteklenir Desteklenir
HTTP istemci SDK'ları Desteklenir Desteklenmez
Sıralı mesajlar Desteklenir Desteklenmez
Tüketici ofsetini sıfırlama Desteklenir Desteklenmez
Mesaj yeniden denemesi Desteklenir Desteklenmez
Biriken mesaj sorgulama ve uyarı Desteklenir Desteklenmez
Abonelik sorgulama Desteklenir Desteklenmez

Yayınlama tüketimi modunda aracı başarısız mesajları yeniden denemez, tüketim ilerlemesini izlemez ve ofset sıfırlamayı desteklemez. Bu durumları uygulama düzeyinde ele almak üzere tüketicinizi tasarlayın.

Tüketici ilerlemesi takibi

Tüketici ilerlemesinin izlenme şekli iki mod arasında farklılık gösterir:

Yön Kümeleme tüketimi Yayınlama tüketimi
Saklama yeri ApsaraMQ for RocketMQ aracı İstemci
Yeniden başlatma sonrası Son kaydedilen ofsetten devam eder En son mesajdan başlar
Güvenilirlik Daha yüksek -- aracı tarafından yönetilen ofsetler istemci hatalarından kurtulur Daha düşük -- istemci tarafından yönetilen ofsetler yeniden başlatmada kaybolur; tekrarlayan tüketim olasılığı daha yüksektir
Mesaj yeniden denemesi Aracı başarısız mesajları otomatik olarak yeniden iletir Otomatik yeniden deneme yok; hataları kodunuzda ele alın

Tüketim modunu yapılandırın

Tüketici SDK kodunuzda MessageModel parametresini ayarlayın. Bu parametreyi ayarlamazsanız varsayılan olarak kümeleme tüketimi kullanılır.

TCP istemci SDK'ları

Tüm TCP istemci SDK örneklerinde tüketici yapılandırmasında MessageModel özelliği ayarlanır.

Java

  • Kümeleme tüketimi

      // Clustering consumption is the default. This explicit setting is optional.
      properties.put(PropertyKeyConst.MessageModel, PropertyValueConst.CLUSTERING);
  • Yayınlama tüketimi

      properties.put(PropertyKeyConst.MessageModel, PropertyValueConst.BROADCASTING);

C/C++

  • Kümeleme tüketimi

      // Clustering consumption is the default. This explicit setting is optional.
      factoryInfo.setFactoryProperty(ONSFactoryProperty::MessageModel, ONSFactoryProperty::CLUSTERING);
  • Yayınlama tüketimi

      factoryInfo.setFactoryProperty(ONSFactoryProperty::MessageModel, ONSFactoryProperty::BROADCASTING);

.NET

  • Kümeleme tüketimi

      // Clustering consumption is the default. This explicit setting is optional.
      factoryInfo.setFactoryProperty(ONSFactoryProperty.MessageModel, ONSFactoryProperty.CLUSTERING);
  • Yayınlama tüketimi

      factoryInfo.setFactoryProperty(ONSFactoryProperty.MessageModel, ONSFactoryProperty.BROADCASTING);

HTTP istemci SDK'ları

HTTP istemci SDK'ları yalnızca kümeleme tüketimini destekler. Yapılandırma gerekmez.

SSS

Yayınlama tüketimini yapılandırdıktan sonra neden etkili olmuyor?

Bu durum, mesaj türünün veya SDK'nın yayınlama tüketimini desteklememesi durumunda gerçekleşir:

  • Sıralı mesajlar: Sıralı mesajlar yalnızca kümeleme tüketimini destekler. MessageModel ayarı yoksayılır.

  • HTTP istemci SDK: HTTP istemcileri yalnızca kümeleme tüketimini destekler. Yayınlama tüketimini kullanmak için bir TCP istemci SDK'sına geçin.

Tek bir grupta tüketim modlarını karıştırabilir miyim?

Hayır. Bir gruptaki tüm tüketiciler aynı tüketim modunu kullanmalıdır.

Aynı gruptaki tüketicilerde farklı MessageModel ayarları varsa gruptaki tüm tüketiciler için yayınlama tüketimi etkili olur. Örneğin, ikisi CLUSTERING ve üçü BROADCASTING olarak ayarlanmış beş tüketiciden oluşan bir grupta beşi de yayınlama tüketimi kullanır.

Sonraki adımlar

  • Abonelik tutarlılığı: Bir gruptaki tüketiciler arasında abonelik yapılandırmalarını tutarlı tutma kuralları.

  • Mesaj yeniden denemesi: Kümeleme tüketimi modunda aracının başarısız mesaj teslimatını nasıl ele aldığı.

  • Örnek kod: ApsaraMQ for RocketMQ için eksiksiz mesajlaşma örnekleri.