AMQP protokolüne giriş
AMQP (Gelişmiş Mesaj Kuyruşu Protokolü), birleşik mesajlaşma hizmetleri sağlayan ve mesaj odaklı ara yazılım için tasarlanmış uygulama katmanı protokolleri için açık bir standart olan uygulama katmanı standart protokolüdür. AMQP, süreçler arasında asenkron mesajların iletilmesini sağlayan bir ağ protokolüdür.
Bu protokole dayalı istemci ve mesaj ara yazılımları, farklı istemci/middleware ürünleri, farklı geliştirme dilleri vb. tarafından sınırlandırılmadan mesaj iletebiliyor.
AMQP'nin ana özellikleri mesaj odaklı, kuyruklu, yönlendirme (eşler arası ve yayınlama/abone olmak dahil), güvenilirlik ve güvenliktir. AMQP, mesaj sağlayıcıları ve müşterilerin davranışını zorunlu kılarak farklı tedarikçiler arasında gerçek bir birlikte çalışabilirlik sağlar.
Yönlendirme mesajları
AMQP mimarisinde, başarılı bir mesaj yönlendirmesi üç bölümden oluşur:
- Exchange: Üreticilerin mesaj yayımladığı yer
- Kuyruklar: Tüketicilerin mesaj aldığı yer
- Bağlamalar: Mesajların switch'ten belirli bir kuyruğa nasıl yönlendirildiği
Değişimler ve Bağlamalar
Peki mesaj kuyruğun içine nasıl ulaşıyor? Bir mesajı bir tüketiciye iletmek istediğinizde, önce onu değişimciye göndermelisiniz. Daha sonra, belirli kurallar veya yönlendirme anahtarlarına dayanarak, RabbitMQ mesajları hangi kuyruğun adresine ileteceğine karar verir.
Kurallar - veya yönlendirme anahtarları - borsaya kuyruk bağlamanızı sağlar. RabbitMQ, mesajdaki yönlendirme anahtarını bağlamada kullanılan anahtarla eşleştirmeye çalışacaktır. Mesaj, dört değişim türünden birine göre kuyruğun içine iletilir: fanout, topic, direct, header
Fanout Değişimi
Bu tür bir değişim, aldığı tüm mesajları kendisine bağlı tüm kuyruklara iletir. Yayınlanan mesajla birlikte verilen yönlendirme anahtarları göz ardı edilecektir.
Konu Değişimi
Bu tür bir değişimde, mesajlar yönlendirme anahtarına göre kuyruğun içine gönderilir. Bu, konu değişimine gönderilen mesajların belirli bir yönlendirme anahtarına sahip olması gerektiği anlamına gelir; bu anahtar, noktalarla ayrılmış kelimeler listesi olmalıdır (örneğin, 'acs.deviceoperations.'). Kelime sınırı 255 bayttır.
Bağlama anahtarı, yönlendirme anahtarıyla aynı formatta olmalıdır. Bu nedenle, belirli bir yönlendirme anahtarıyla gönderilen mesajlar, eşleşen bir bağlama anahtarıyla her kuyruk sınırına iletilecektir.
Bağlama anahtarları aşağıdaki ifade kurallarına izin verir:
*(yıldız) sadece bir kelimenin yerine geçebilir # (hash) sıfır veya daha fazla kelimenin yerini alabilir Bir kuyruk "#" (hash) bağlama anahtarıyla bağlandığında, yönlendirme anahtarı ne olursa olsun tüm mesajları alır; tıpkı bir Fanout fan-out değişiminde olduğu gibi.
Doğrudan Değişim
Bir kuyruk ilan edildiğinde,Otomatik olarak kuyruk adını yönlendirme anahtarı olarak kullanan bir anahtara bağlanın。 Yönlendirme anahtarı eşleşirse, mesaj uygun kuyruda iletilir.
Başlık Değişimi
Başlık anahtarları konu anahtarlarına biraz benzer, ancak konu anahtarlarının aksine, yönlendirme rota anahtarlarına dayanır ve başlık anahtarlarının yönlendirme değerleri mesajın başlık verisine dayanır. Konu anahtarı yönlendirme anahtarı sadece bir dizedir, başlık anahtarı ise tam sayı ve bir hash olabilir.
(Son)
|