Advanced Message Queuing Protocol (AMQP), iki taraf arasında güvenilir, yönlendirilebilir ve birlikte çalışabilir mesaj alışverişi sağlamak amacıyla tasarlanmış açık bir internet protokolüdür. AMQP, özellikle işletmeler arası iletişimde mesajların eksiksiz, doğru ve sıralı bir şekilde iletilmesini garanti eden, katmanlı bir mimariye sahip bir protokol standardıdır. OASIS tarafından 2012 yılında standartlaştırılan AMQP, uygulama bağımsızlığı ve platformlar arası iletişim sağlama amacı güder.
Günümüzde özellikle finans, sağlık ve telekomünikasyon gibi sektörlerde, güvenilir veri iletimi ihtiyacı doğrultusunda yaygın olarak kullanılmaktadır. AMQP’nin sunduğu mesajlaşma garantileri ve esnek yapılandırma seçenekleri, onu yüksek güvenilirlik gerektiren sistemler için uygun bir çözüm haline getirmiştir.
AMQP Protokolünün Yapısı
AMQP, temel olarak çok katmanlı bir protokol mimarisi üzerine inşa edilmiştir. Her katman, sistemin güvenli, verimli ve genişletilebilir bir şekilde çalışmasını destekler.
AMQP Katmanları
AMQP, farklı işlevleri üstlenen birkaç katmandan oluşur:
- Türler Katmanı (Types Layer): AMQP’nin veri türü sistemi ve kodlamasını tanımlar.
- Taşıma Katmanı (Transport Layer): İki işlem arasında verilerin taşınmasını sağlayan verimli, ikili (binary) ve eşdüzey (peer-to-peer) bir protokoldür.
- Mesajlaşma Katmanı (Messaging Layer): Mesaj formatı ve mesajların yapılandırılması ile ilgili kuralları belirler.
- İşlem Katmanı (Transactions Layer): Mesaj alışverişinde işlemsel güvenliği sağlar.
- Güvenlik Katmanı (Security Layer): Mesajların güvenliğini ve kimlik doğrulamasını yönetir.
Mesajlaşma Modeli
AMQP, mesaj alışverişi için iki temel varlık içerir: göndericiler (senders) ve alıcılar (receivers). Mesajlar, "exchange" adı verilen bileşenler tarafından yönlendirilir ve "queue" adı verilen kuyruklarda tutulur. İstemciler mesajları doğrudan exchange'e gönderir, ardından kurallara göre uygun kuyruklara yönlendirilir.
AMQP protokolünün temel mimarisi. Gönderici, Exchange üzerinden mesajı ilgili kuyruğa yönlendirir ve alıcı kuyruktan mesajı alır. (Yapay zeka ile oluşturulmuştur.)
AMQP'deki Exchange Türleri
AMQP, mesajları farklı şekillerde yönlendirmek için çeşitli exchange türleri sunar:
- Direct Exchange: Mesajlar, routing key ile tam eşleşen kuyruklara iletilir.
- Fanout Exchange: Mesajlar, routing key dikkate alınmaksızın tüm bağlı kuyruklara kopyalanır.
- Topic Exchange: Mesajlar, belirli bir konu başlığı desenine uyan kuyruklara yönlendirilir.
- Headers Exchange: Yönlendirme, mesaj başlıklarındaki özelliklere göre yapılır.
AMQP'nin Teknik Özellikleri
AMQP protokolü, gelişmiş özellikleri sayesinde geniş bir uygulama yelpazesine hizmet edebilir.
İletim Güvenilirliği
AMQP, mesajların teslim edilmesini garantilemek için çeşitli seviyelerde güvenilirlik mekanizmaları sunar. Mesajların teslim edilip edilmediğini doğrulamak amacıyla acknowledgements (onay mekanizmaları) kullanılır.
Akış Kontrolü
Protokol, ağ trafiğini düzenlemek için akış kontrolü sağlar.Böylece aşırı yüklenme ve veri kaybı gibi problemler önlenir.
Güvenlik Katmanı
AMQP, kimlik doğrulama ve şifreleme işlemleri için TLS/SSL gibi güvenlik protokolleri ile entegre edilebilir. Ayrıca, SASL (Simple Authentication and Security Layer) desteği bulunmaktadır.
AMQP Mesaj Brokerları
AMQP mesajlaşma altyapısını kurarken genellikle bir mesaj brokerı kullanılır. Brokerlar, istemciler arasında mesaj alışverişini düzenler ve sistemin bütünlüğünü korur. Yaygın olarak kullanılan AMQP brokerlarından biri RabbitMQ'dur.
AMQP'nin Kullanım Alanları
AMQP, geniş bir uygulama alanına sahiptir ve özellikle aşağıdaki alanlarda etkili şekilde kullanılmaktadır:
- Finans Sektörü: Finans kuruluşları, yüksek güvenilirlikte veri iletimine ihtiyaç duydukları için AMQP'yi tercih ederler. Örneğin, bankalar arası para transferi sistemlerinde mesajların eksiksiz iletilmesi önemlidir.
- Sağlık Hizmetleri: Hastaneler ve sağlık veri yönetim sistemleri, hasta bilgilerinin güvenli bir şekilde paylaşılması için AMQP tabanlı mesajlaşma çözümlerini kullanmaktadır.
- E-Devlet Sistemleri: E-devlet uygulamalarında, farklı kurumlardan gelen verilerin merkezi sistemlere güvenli ve hızlı bir şekilde aktarılması amacıyla AMQP tabanlı mesaj brokerlar kullanılmaktadır.
- Endüstriyel IoT: Sanayi tesislerinde sensörlerden gelen verilerin merkezi veri toplama ve analiz sistemlerine taşınması süreçlerinde AMQP tercih edilmektedir.
AMQP kullanım alanları (Yapay zeka ile oluşturulmuştur.)