Simple Message Queue (önceki adıyla MNS), kuyruk tabanlı mesajlaşma için aşağıdaki terimleri kullanır. API üzerinden kuyrukları yapılandırmadan, mesaj gönderip almadan veya mesaj yaşam döngüsünü yönetmeden önce bu terimlere aşina olun.
Hesap
Alibaba Cloud hesap kimliğidir (ID). Bir kuyruk oluşturan hesap, bu kuyruğun sahibi olur.
Kuyruk
Tüketiciler mesajları alana kadar mesajları depolayan bir hedeftir. Üreticiler bir kuyruğa mesaj gönderir ve tüketiciler bu kuyruktan mesaj alır. Bir kuyruktaki her mesaj, mesaj kimliği (Message ID) ve alma tanıtıcısı (ReceiptHandle) kombinasyonu ile benzersiz şekilde tanımlanır.
Kuyruk türleri
| Özellik | Standart kuyruk | Gecikmeli kuyruk |
|---|---|---|
| Davranış | Mesajlar hemen tüketilmek üzere kullanılabilir durumdadır | Mesajlar, kullanılabilir hale gelmeden önce yapılandırılabilir bir gecikme süresi boyunca gizli kalır |
| Gecikme yapılandırması | DelaySeconds ayarlanmamıştır veya 0 olarak ayarlanmıştır | DelaySeconds, CreateQueue veya SetQueueAttributes aracılığıyla ayarlanır |
| Kullanım durumu | Mesajların anında tüketilmesi gereken gerçek zamanlı işleme | Tüketim öncesinde bir bekleme süresinin gerekli olduğu ertelenmiş işleme |
Kuyruk sahibi
Bir kuyruk oluşturan Alibaba Cloud hesabı, bu kuyruğun sahibidir. Kuyruk sahipleri, kuyruk üzerinde tüm işlemleri yapmaya yetkilidir. Simple Message Queue (önceki adıyla MNS) hizmetini etkinleştirdikten sonra, bir kuyruk oluşturmak için CreateQueue API işlemini çağırın. Kuyruk sahibinin hesap kimliğini (ID) Alibaba Cloud web sitesinde bulabilirsiniz.
Üretici ve tüketici
Üretici: Bir kuyruğa mesaj gönderen istemcidir.
Tüketici: Bir kuyruktan mesaj alan istemcidir.
Uç nokta
Simple Message Queue (önceki adıyla MNS) API çağrıları için erişim URL'sidir. Biçimi şöyledir:
http://<AccountId>.mns.<Region>.aliyuncs.com
| Yer tutucu | Açıklama |
|---|---|
<AccountId> |
Alibaba Cloud hesap kimliğinizdir (ID). API işlemlerini çağırırken gerçek hesap kimliğinizle değiştirin. |
<Region> |
Simple Message Queue (önceki adıyla MNS) hizmetinin dağıtıldığı bölge; örneğin cn-hangzhou veya cn-shanghai. |
Mesaj türleri
| Özellik | Standart mesaj | Gecikmeli mesaj |
|---|---|---|
| Davranış | İletildikten hemen sonra tüketilmek üzere kullanılabilir durumdadır | Kullanılabilir hale gelmeden önce belirtilen bir gecikme süresi boyunca gizli kalır |
| Yapılandırma | Mesaj başına DelaySeconds ayarlanmadığında varsayılan davranıştır | SendMessage isteğinde DelaySeconds ayarlayın |
Gecikmeli bir mesaj, gönderme sırasında ayarlanan mesaj başına gecikme kullanır. Gecikmeli bir kuyruk ise gelen tüm mesajlara kuyruk düzeyinde bir gecikme uygular. Her ikisi de DelaySeconds parametresini kullanır ancak farklı kapsamlarda uygulanır.
Mesaj kimliği ve alma tanıtıcısı
| Özellik | Mesaj kimliği (Message ID) | Alma tanıtıcısı (Receipt Handle) |
|---|---|---|
| Oluşturulma zamanı | Bir mesaj kuyruğa gönderildiğinde | Bir mesaj kuyruktan tüketildiğinde |
| Benzersizlik | Kuyruk içinde benzersizdir, kuyruklar arasında değildir | Tüketme işlemi başına benzersizdir |
| Ömür | Kalıcı ve değişmezdir | Geçicidir; mesaj durumu değiştiğinde süresi dolar |
| Birincil kullanım | Verileri izlemek ve doğrulamak | Tüketilen bir mesajı silmek veya VisibilityTimeout değerini değiştirmek |
| Yeniden kullanılabilirlik | Mesajın ömrü boyunca geçerlidir | Tek kullanımlıktır; yeni bir tanıtıcı almak için mesajı tekrar tüketin |
Bir mesajı silmek için mesaj kimliğini değil, alma tanıtıcısını kullanın.
Mesaj durumu
Her mesaj aşağıdaki durumlardan geçer:
| Durum | Açıklama |
|---|---|
| Active | Tüketilmek üzere kullanılabilir durumdadır. Yalnızca bu durumdaki mesajlar tüketilebilir. |
| Inactive | Tüketilmiştir ve VisibilityTimeout süresi boyunca geçici olarak gizlenmiştir. |
| Delayed | Active durumuna geçmeden önce DelaySeconds süresinin dolmasını bekler. |
| Deleted | Bir tüketici tarafından alma tanıtıcısı kullanılarak açıkça silinmiştir. |
| Expired | MessageRetentionPeriod süresini aşmış ve otomatik olarak geri dönüştürülmüştür. |
Durum geçişleri
Standart kuyruktaki standart mesaj
Mesaj, Active durumuyla kuyruğa ulaşır.
Bir tüketici mesajı alır. Durum, VisibilityTimeout süresi boyunca Inactive olarak değişir.
-
İki olası sonuç vardır:
Tüketici, VisibilityTimeout süresi içinde mesajı siler. Durum Deleted olarak değişir.
Silme işlemi olmadan VisibilityTimeout süresi dolar. Durum tekrar Active haline gelir ve mesaj yeniden tüketilmek üzere kullanılabilir olur.
Gecikmeli kuyruktaki standart mesaj
Mesaj, Delayed durumuyla kuyruğa ulaşır.
DelaySeconds süresi dolduktan sonra durum Active olarak değişir.
Bu noktadan itibaren mesaj, standart kuyruktaki standart mesajla aynı geçişleri izler.
Gecikmeli mesaj (mesaj başına gecikme)
Mesaj, mesaj başına bir DelaySeconds değeri ile gönderilir. İlk durum Delayed'dir.
DelaySeconds süresi dolduktan sonra durum Active olarak değişir.
Bu noktadan itibaren mesaj, standart kuyruktaki standart mesajla aynı geçişleri izler.
Mesaj süresi dolması
Bir mesaj, MessageRetentionPeriod süresi dolmadan silinmezse, mevcut durumundan bağımsız olarak durumu Expired olarak değişir. Süresi dolan mesajlar otomatik olarak geri dönüştürülür.
Durum geçiş diyagramı

Mesaj yaşam döngüsü diyagramı
