Tüm Ürünler
Search
Belge Merkezi

ApsaraMQ for RocketMQ:Message queues

Son Güncelleme:Oct 04, 2026

ApsaraMQ for RocketMQ'daki bir kuyruk, mesajları depolayan ve ileten, yalnızca ekleme yapılabilen sıralı bir günlük yapısıdır. Mesaj depolamanın en küçük birimidir. Üreticiler yeni mesajları kuyruğun sonuna ekler. Tüketiciler, her mesajın günlük içindeki konumunu indeksleyen ardışık bir tam sayı olan ofseti referans alarak herhangi bir konumdan okuma yapabilir. Tüketici bu ofseti kontrol eder; ileriye doğru okuyabilir, en son konuma atlayabilir veya geçmişi yeniden oynatmak için daha eski bir ofsete dönebilir.

Her konu (ve hafif konu) bir veya daha fazla kuyruktan oluşur. Kuyruklar iki temel özellik sunar:

  • Sıralı depolama -- Bir kuyruk içindeki mesajlar yazılma sırasını korur. En eski mesaj başta, en yeni mesaj ise sonda yer alır. Tüketiciler, okuma konumlarını takip etmek için ofseti kullanır.

  • Akış semantiği -- Depolama modeli kuyruk tabanlı olduğu için tüketiciler, herhangi bir ofsetten başlayarak mesajların herhangi bir aralığını okuyabilir. Bu durum, toplu okumaları (bir aralıkta toplu tüketim) ve geriye dönük okumaları (daha önceki mesajları yeniden oynatma) mümkün kılar. RabbitMQ ve ActiveMQ gibi geleneksel broker'lar, kuyruk tabanlı bir depolama modeline sahip olmadıkları için bu işlemleri desteklemez.

Kuyrukların konularla ilişkisi

Aşağıdaki diyagram, kuyrukların ApsaraMQ for RocketMQ alan modelindeki yerini gösterir:

Queue position in the domain model

Konu, mesajların mantıksal bir grubudur. Kuyruklar ise mesajların kalıcı olarak saklandığı ve okunduğu, konu içindeki fiziksel depolama bileşenleridir. Tüm mesaj kaynakları konu ve hafif konu düzeyinde yönetilse de gerçek işlemler kuyruklar üzerinde yürütülür. Örneğin, bir üretici bir konuya mesaj gönderdiğinde broker bu mesajı konunun kuyruklarından birine iletir.

Başarıyla gönderilen tüm mesajlar kalıcı olarak depolanır. Bu durum, üretici ve tüketici istemci onaylarıyla birleştiğinde en az bir kez teslimat semantiği sağlar.

ApsaraMQ for RocketMQ'daki kuyruklar, Apache Kafka'daki bölümlerle aynı rolü üstlenir. Kafka bölümlerine aşina iseniz kuyruk modeli de aynı şekilde çalışır.

Yatay ölçeklendirme

ApsaraMQ for RocketMQ, bir konudaki kuyruk sayısını ayarlayarak yatay olarak ölçeklenir:

  • Yatay genişletme (Scale out) -- Yükü daha fazla hizmet düğümüne dağıtmak için kuyruk ekleyin.

  • Yatay daraltma (Scale in) -- Kaynakları konsolide etmek için kuyruk kaldırın.

Okuma ve yazma izinleri

Her kuyruğun erişimi kontrol eden bir izin ayarı vardır:

Değer İzin Davranış
6 Okuma ve yazma Hem okuma hem de yazma işlemlerine izin verir
4 Yalnızca okuma Yalnızca geçmiş mesajlar için okuma işlemlerine izin verir; yeni yazma yapılamaz
2 Yalnızca yazma Yalnızca yeni mesajlar için yazma işlemlerine izin verir; okuma yapılamaz
0 Erişim yok Tüm okuma ve yazma işlemlerini engeller
Kuyruk izinlerini değiştirmek bir işletme ve bakım işlemidir. Sık sık değişiklik yapmaktan kaçının.

Kuyruk sayısı kısıtlamaları

Her konu veya hafif konu için kuyruk sayısı şunlara bağlıdır:

  • Mesaj türü

  • Örneğin bulunduğu bölge

Kuyruk sayıları sistem tarafından yönetilir ve değiştirilemez.

Sürüm uyumluluğu

Kuyruk adlandırması hizmet sürümleri arasında farklılık gösterir:

Sürüm Kuyruk adı formatı Düğümlerle ilişkisi
3.x ve 4.x Üçlü: {Topic Name}+{Broker ID}+{Queue ID} Fiziksel bir düğüme bağlı
5.x Küme tarafından atanan genel benzersiz dize Fiziksel düğümlerden bağımsız
Önemli

Uygulamanızda asla belirli bir kuyruk adı formatını sabit kodlamayın veya varsaymayın. Adlandırma şeması değiştiği için manuel olarak oluşturulan kuyruk adları bir sürüm yükseltmesinden sonra çalışmaz.

Kuyruk boyutlandırması için en iyi uygulamalar

Kuyruk sayısını düşük tutun

Yalnızca iş yükünüzün gerektirdiği kadar kuyruk kullanın. Gereksiz kuyruklar iki soruna neden olur:

  • Meta veri şişkinliği -- Ölçümler kuyruk düzeyinde toplanır. Daha fazla kuyruk, yönetilmesi gereken daha fazla kontrol düzlemi meta verisi anlamına gelir.

  • Boşa harcanan istemci kaynakları -- Okuma ve yazma işlemleri kuyruk başına gerçekleştirilir. Boştaki kuyruklar, istemci ve sunucu kaynaklarını tüketen boş yoklama istekleri oluşturur.

Ne zaman kuyruk eklenmeli

Fiziksel düğüm yük dengeleme: Bir kümeye düğüm ekledikten sonra trafiği eşit dağıtmak için yeni düğümlerde kuyruk oluşturun veya mevcut kuyrukları taşıyın.

Sıralı mesaj aktarım hızı (v4.x): Hizmet sürümü 4.x'te mesaj sıralaması yalnızca tek bir kuyruk içinde garanti edilir, bu nedenle kuyruk sayısı sıralı mesaj eşzamanlılığını doğrudan sınırlar. Yalnızca bir performans darboğazıyla karşılaştığınızda kuyruk ekleyin.

v5.x'te sırasız mesajlar -- işlem gerekmez: Hizmet sürümü 5.x, mesaj düzeyinde tüketici yük dengelemeyi destekler. Aynı kuyruktaki mesajlar tüm tüketicilere eşit şekilde dağıtılır, bu nedenle kuyruk sayısı tüketim eşzamanlılığını etkilemez. Ayrıntılar için bkz. Tüketici yük dengeleme.