ApsaraMQ for RocketMQ, uygulamalar arasında eşzamansız iletişim kurmak için tasarlanmış dağıtık bir mesajlaşma hizmetidir. Her Alibaba Cloud bölgesindeki birden fazla veri merkezinde çalışır; bu sayede tek bir veri merkezi devre dışı kalsa bile mesaj yayınlama ve abonelik işlemleri kullanılabilir durumda kalır.
Yaygın kullanım senaryoları şunlardır:
Eşzamansız gevşek bağlantı -- Üst akış hizmetlerini alt akış işlemlerinden ayırarak her bileşenin bağımsız olarak ölçeklendirilmesini sağlar. Örneğin, bir sipariş sistemi sipariş oluşturma olaylarını yayınlar; ödeme, envanter ve kargo gibi alt akış hizmetleri bu olaylara abone olur ve kendi zamanlamalarına göre işler.
Güvenilir olay teslimatı -- Sipariş olaylarını, ödeme bildirimlerini veya envanter güncellemelerini en az bir kez teslim garantisiyle iletir.
Zamanlanmış görev çalıştırma -- Belirli bir zamanda veya en fazla 40 günlük bir gecikme sonrası alt akış eylemlerini tetikler. Örneğin, kullanıcı sipariş verdikten 30 dakika sonra bir ödeme hatırlatması gönderir.
Dağıtık işlemler -- Nihai tutarlılık sağlayan işlemeli mesajlarla çoklu hizmet operasyonlarını koordine eder. Yerel veritabanı yazma işlemi ve mesaj gönderimi ya birlikte başarılı olur ya da birlikte geri alınır.
Aşağıdaki diyagram genel özellik mimarisini gösterir.

Mesaj türleri
ApsaraMQ for RocketMQ dört mesaj türü sunar. Teslimat ve sıralama gereksinimlerinize uygun olan türü seçin.
Normal messages
Normal messages are messages that have no special features in ApsaraMQ for RocketMQ. They are different from featured messages, such as scheduled messages, delayed messages, ordered messages, and transactional messages.
Scheduled messages and delayed messages
ApsaraMQ for RocketMQ allows producers to deliver messages at a specific point in time or after a specific period of time. The maximum time period is 40 days.
Ordered messages
ApsaraMQ for RocketMQ allows consumers to consume messages in the order in which they are delivered.
Transactional messages
ApsaraMQ for RocketMQ provides a distributed transaction feature similar to X/Open XA to ensure ultimate transaction consistency of distributed transactions.
Normal messages
Sıralama veya zamanlama kısıtlaması bulunmayan standart mesajlardır. Günlük verilerini iletmek, bildirimleri dağıtmak veya mikro hizmet çağrılarını gevşek bağlı hale getirmek gibi genel amaçlı eşzamansız iletişim senaryolarında normal mesajları kullanın.
Ayrıntılar için bkz. Normal messages.
Scheduled and delayed messages
Mesajları belirli bir zaman damgasında (zamanlanmış) veya ayarlanan bir gecikme süresi sonunda (gecikmeli) iletir. Maksimum zamanlama penceresi 40 gündür.
Tipik senaryolar:
Kullanıcı sipariş verdikten 30 dakika sonra hatırlatma gönderin.
Her gün belirli bir saatte toplu işi tetikleyin.
Ayrıntılar için bkz. Scheduled messages and delayed messages.
Ordered messages
Tüketicilerin mesajları tam olarak yayınlandıkları sırayla almasını garanti eder. Sıralamanın önemli olduğu durumlarda ordered messages kullanın; örneğin, veritabanı değişiklik olaylarını işlerken veya her adımın önceki adıma bağlı olduğu çok aşamalı iş akışlarını yürütürken.
Ayrıntılar için bkz. Ordered messages.
Transactional messages
X/Open XA modeline dayalı dağıtık işlemler uygular. İşlemeli bir mesaj, yerel bir veritabanı işlemini mesaj gönderimine bağlar; her ikisi de başarılı olur veya her ikisi de geri alınır. Bu sayede hizmetler arasında nihai tutarlılık sağlanır.
Ayrıntılar için bkz. Transactional messages.
Comparison of message types
Aşağıdaki tabloda mesaj türlerine göre iletim modları ve performans karşılaştırılmaktadır.
| Mesaj türü | Güvenilir eşzamanlı iletim | Güvenilir eşzamansız iletim | Tek yönlü iletim | Çok iş parçacıklı iletim | Performans |
|---|---|---|---|---|---|
| Normal messages | Evet | Evet | Evet | Evet | En yüksek |
| Transactional messages | Evet | Evet | Evet | Evet | En yüksek |
| Scheduled and delayed messages | Evet | Evet | Evet | Evet | En yüksek |
| Bölümlere göre sıralı mesajlar | Evet | Hayır | Hayır | Hayır | Yüksek |
Teslimat ve güvenilirlik
En az bir kez teslimat
Her mesaj en az bir kez teslim edilir. ApsaraMQ for RocketMQ dağıtık bir mimari kullandığından, tüketici yeniden başlatıldığında veya ağ kesintisi olduğunda yinelenen teslimat gerçekleşebilir. Aynı mesajın iki kez işlenmesi veri tutarsızlığına yol açmayacak şekilde tüketici mantığınızı idempotent olacak şekilde tasarlayın.
En iyi uygulamalar için bkz. Message idempotence.
Message retry
Bir tüketici bir mesajı işleyemediğinde ve yeniden deneme yanıtı döndürdüğünde, ApsaraMQ for RocketMQ mesajı yapılandırılan yeniden deneme ilkesine göre tekrar iletir.
Ayrıntılar için bkz. Message retry.
Dead-letter queues
Tüm yeniden deneme girişimlerini tüketen mesajlar dead-letter queue öğesine taşınır. Normal mesaj akışını etkilemeden bu mesajları daha sonra inceleyip yeniden işleyebilirsiniz.
Ayrıntılar için bkz. Dead-letter queues.
Message filtering
Mesajları yayınlama sırasında etiketler veya niteliklerle işaretleyin, ardından tüketici gruplarında filtre koşulları ayarlayın. Broker, her mesajı filtreye göre değerlendirir ve yalnızca eşleşen mesajları iletir. Bu sayede gereksiz ağ trafiği ve işleme yükü azaltılır.
Ayrıntılar için bkz. Message filtering.
Tüketim modelleri
Clustering consumption
Kümeleme modunda, bir mesajın bir tüketici grubu içindeki yalnızca bir tüketici tarafından işlenmesi gerekir. Her mesajın yalnızca bir kez ele alınması gereken yük dengelemeli iş yükleri için bu modu kullanın.
Broadcasting consumption
Yayınlama modunda, gruptaki her tüketici her mesajın bir kopyasını alır. Bu sayede her mesaj, her tüketici tarafından en az bir kez tüketilir. Önbellek geçersiz kılma veya yapılandırma güncellemeleri gibi tüm örneklerin aynı verilere ihtiyaç duyduğu durumlarda bu modu kullanın.
Her iki modla ilgili ayrıntılar için bkz. Clustering consumption and broadcasting consumption.
Consumer offset reset
Tüketici ofsetini sıfırlayarak biriken mesajları atlayabilir (en son ofsete taşıyarak) veya geçmiş mesajları yeniden işleyebilirsiniz (daha önceki bir zamana taşıyarak).
Ayrıntılar için bkz. Reset consumer offsets.
Erişim protokolleri
ApsaraMQ for RocketMQ iki erişim protokolünü destekler. Performans gereksinimlerinize ve ağ ortamınıza göre seçim yapın.
| Protokol | Avantajlar | Desteklenen diller |
|---|---|---|
| TCP | HTTP tabanlı erişime kıyasla daha özelleştirilmiş, güvenilir ve kararlıdır. | Java, C, C++, .NET |
| HTTP | Kullanımı kolay RESTful API'ler sunar ve güçlü çapraz ağ erişim yetenekleri sağlar. | Java, C++, .NET, Go, Python, Node.js, PHP |
TCP SDK ayrıntıları için bkz. TCP SDK release notes. HTTP kullanımı için bkz. HTTP access.
Uygulamalarınızı Alibaba Cloud Elastic Compute Service (ECS) örneklerinde, kendi altyapınızda, mobil cihazlarda veya IoT cihazlarında dağıtarak mesaj göndermek ve almak üzere ApsaraMQ for RocketMQ'ya bağlanabilirsiniz. Yerel geliştiriciler ayrıca İnternet üzerinden ApsaraMQ for RocketMQ'ya erişebilir.
Gözlemlenebilirlik
Message query
Mesaj kimliği, mesaj anahtarı veya konu kullanarak belirli mesajları arayın. Teslimat durumunu doğrulamak veya işleme sorunlarını hata ayıklamak için mesaj sorgularını kullanın.
Ayrıntılar için bkz. Query a message.
Message trace
Bir mesajın üreticiden broker'a ve ardından tüketiciye kadar olan tam yolunu izleyin. Message trace'ler, teslimat işlem hattında nerede arıza veya gecikme oluştuğunu belirlemenize yardımcı olur.
Ayrıntılar için bkz. Query a message trace.
Dashboard
Üretim, tüketim ve birikim ölçümlerini örnek, konu veya gruba göre görüntüleyin. Dashboard, ortamınızdaki mesajlaşma sağlığının konsolide bir görünümünü sunar.
Ayrıntılar için bkz. Dashboard.
Monitoring and alerting
Tüketim gecikmelerini veya hatalarını tespit etmek için tüketici grubu ölçümlerinde uyarılar yapılandırın. Mesaj birikimi bir eşiği aştığında bildirim alın; böylece sorunlar alt akış hizmetlerini etkilemeden önce çözülür.
Ayrıntılar için bkz. Monitoring and alerting.
Yönetim araçları
Web console
Konuları, grupları ve örnekleri tarayıcı tabanlı bir konsol aracılığıyla yönetin. Konsol ayrıca mesaj sorgularını, mesaj izi aramalarını ve izleme yapılandırmasını destekler.
Ayrıntılar için bkz. User guide.
OpenAPI
ApsaraMQ for RocketMQ yönetim işlemlerini kendi araçlarınıza veya otomasyon işlem hatlarına OpenAPI kullanarak entegre edin.
Ayrıntılar için bkz. API reference.