Simple Message Queue (SMQ, eski adıyla MNS), uygulama bileşenleri arasında veri ve bildirim aktarımı sağlayan dağıtık bir mesajlaşma hizmetidir. Üreticileri tüketicilerden ayırarak her bir bileşenin bağımsız olarak ölçeklendirilmesine, dağıtılmasına ve hata durumlarını yönetmesine olanak tanır.
SMQ iki mesajlaşma modeli sunar:
Kuyruk modeli — Her mesajın tek bir tüketici tarafından işlendiği nokta-nokta mesajlaşma.
Konu modeli — Tek bir mesajın birden fazla aboneye iletildiği yayımla-abone ol mesajlaşması.
Avantajlar
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Kullanım senaryoları
Mikro hizmetlerin ayrıştırılması. Hizmetler arası iletişimi doğrudan çağrılar yerine kuyruklar üzerinden yönlendirin. Her hizmet mesajları kendi hızında tükettiğinden, bir bileşendeki yavaşlama diğerlerini engellemez.
Bildirimlerin çoğaltılması. Birden fazla aşağı akış sistemine aynı anda ulaşmak için tek bir olayı bir konuya yayımlayın. Örneğin, sipariş oluşturuldu olayı aynı anda bir sipariş karşılama kuyruğuna, bir veri ambarı kuyruğuna ve bir HTTP bildirim uç noktasına gönderilir.
Yük dengeleme. Trafik artışları sırasında gelen istekleri bir kuyrukta arabelleğe alın. Tüketiciler birikmiş yükü sabit bir hızda işleyerek arka uç hizmetlerinin aşırı yüklenmesini önler.
Eşzamansız işleme. Görüntü işleme, rapor oluşturma veya veri dönüştürme gibi zaman alan görevleri bir kuyruk aracılığıyla arka plan çalışanlarına devredin.
Erişim yöntemleri
SMQ, İnternet ve Virtual Private Cloud (VPC) üzerinden erişimi destekler. Bir VPC içinde, SMQ'ya Elastic Compute Service (ECS), ApsaraDB RDS ve Server Load Balancer (SLB) gibi diğer Alibaba Cloud hizmetleriyle birlikte erişmek için CIDR bloğunu, yönlendirme tablosunu ve ağ geçidini yapılandırın.
Kuyruk modeli
Kuyruk modelinde, üreticiler mesajları bir kuyruğa gönderir ve tüketiciler bu kuyruktan mesajları çeker. Her mesaj yalnızca bir tüketici tarafından tüketilebildiğinden bu model, görev dağıtımı ve iş yükü işleme için uygundur.
Çalışma prensibi
Bir üretici bir kuyruğa mesaj gönderir.
Bir tüketici mesajı çeker. Mesaj alındıktan sonra görünmezlik süresine girer; yapılandırılabilir bir süre boyunca diğer tüketicilerden gizlenir.
İşlem tamamlandıktan sonra tüketici mesajı kuyruktan silin.
Tüketici, görünmezlik süresi dolmadan mesajı silmezse mesaj başka bir tüketicinin alabilmesi için tekrar kullanılabilir hale gelir.
Kuyruk tabanlı mesaj akışı 
Kuyruk türleri
|
|
|
|
|
|
|
|
|
İş yükünüze uyacak şekilde görünürlük zaman aşımı, mesaj saklama süresi ve maksimum mesaj uzunluğu gibi kuyruk parametrelerini özelleştirin.
Teslimat garantisi
Bir kuyruktaki her mesaj, geçerlilik süresi boyunca en az bir kez teslim edilir. SMQ, kullanıcılar arasında kaynakları yalıtmak için Alibaba Cloud hesap sistemiyle entegre çalışır; bu sayede yalnızca yetkili varlıklar mesajlara erişebilir.
Konu modeli
Konu modelinde, bir yayımcı bir konuya mesaj gönderir ve SMQ bu mesajı tüm aktif abonelere iter. Her abonelik, mesajları bir kuyruk gibi belirtilen bir uç noktaya yönlendirir. Bu bire-çok modeli, olay yayınlama ve çoğaltma desenleri için uygundur.
Çalışma prensibi
Bir yayımcı bir konuya mesaj gönderir.
SMQ, konuya bağlı her aboneliği değerlendirir.
Bir aboneliğin filtre etiketi varsa yalnızca aynı etiketi taşıyan mesajlar iletilir. Filtre etiketi olmayan abonelikler tüm mesajları alır.
SMQ, mesajı eşleşen her abonelikte belirtilen uç noktaya iter.
Konu tabanlı mesaj akışı 
Mesaj filtreleme
Abonelikler etiket tabanlı filtrelemeyi destekler. Yalnızca aynı etiketi taşıyan mesajları almak için bir aboneliğe etiket atayın. Bu yaklaşım gereksiz işlemeyi azaltır ve farklı mesaj türlerini işleyen birden fazla abonenin tek bir konuyu paylaşmasına olanak tanır.
Abonelikte etiket yok: Taşıdıkları etiketlerden bağımsız olarak konuya yayımlanan tüm mesajlar iletilir.
Abonelikte etiket var: Yalnızca eşleşen etikete sahip mesajlar iletilir.
Ayrıntılar için bkz. Konularla ilgili RESTful API işlemleri.
Mesaj teslimatı
SMQ, mesajları aboneliklerde belirtilen uç noktalara iter. Bir geri arama URL'si kullanılamıyorsa mesajları bunun yerine bir SMQ kuyruğuna yönlendirin ve kuyruk modelini kullanarak bunları alın. Kurulum talimatları için bkz. Mesajları bir kuyruğa itme ve Bir üretici istemcisinden birden fazla tüketici istemcisine mesaj gönderme.
SMQ, yapılandırılan yeniden deneme ilkesine (NotifyStrategy) göre mesajları geçerlilik süresi boyunca otomatik olarak iter. Bu, mesaj yayınlamanın atomikliğini sağlar.
Mesaj biçimleri
|
|
|
|
|
|
|
|
|
|
|
|
Ayrıntılar için bkz. NotifyContentFormat.
İzleme ve günlük kaydı
Günlük yönetimi
Gönderme, alma ve silme olayları dahil olmak üzere her mesajın tam yaşam döngüsünü izleyin. Konu mesajları için günlükler ayrıca itme girişimlerini ve teslimat sonuçlarını da kaydeder.
Teslimat hatalarını gidermek, mesaj işlemeyi denetlemek ve uçtan uca mesaj akışını doğrulamak için günlük yönetimini kullanın. Ayrıntılar için bkz. Günlük yönetimi.
Cloud Monitor entegrasyonu
Cloud Monitor konsolunda kuyruk ölçümlerini izleyin ve özel uyarı kuralları yapılandırın. Cloud Monitor, mesaj teslimat hataları gibi anormallikler oluştuğunda sizi bilgilendirir. Ayrıntılar için bkz. Cloud Monitor.