Fırtına - Dağıtık Mesajlaşma Sistemi
Apache Storm gerçek zamanlı verileri işler ve girdi normalde bir ileti sıralama sisteminden gelir. Harici bir dağıtılmış mesajlaşma sistemi, gerçek zamanlı hesaplama için gerekli girdiyi sağlayacaktır. Spout, mesajlaşma sistemindeki verileri okuyacak ve bunları demetlere dönüştürüp Apache Storm'a girecektir. İlginç gerçek, Apache Storm'un kendi nimbus ve yöneticisi arasındaki iletişim için dahili olarak kendi dağıtılmış mesajlaşma sistemini kullanmasıdır.
Dağıtılmış Mesajlaşma Sistemi nedir?
Dağıtılmış mesajlaşma, güvenilir mesaj kuyruğu kavramına dayanır. Mesajlar, istemci uygulamaları ve mesajlaşma sistemleri arasında eşzamansız olarak sıraya alınır. Dağıtılmış bir mesajlaşma sistemi, güvenilirlik, ölçeklenebilirlik ve kalıcılığın avantajlarını sağlar.
Mesajlaşma modellerinin çoğu, publish-subscribe model (basitçe Pub-Sub) mesajları gönderenlerin arandığı yer publishers ve mesajları almak isteyenler aranır subscribers.
Mesaj gönderen tarafından yayınlandıktan sonra, aboneler bir filtreleme seçeneği yardımıyla seçilen mesajı alabilirler. Genellikle iki tür filtrelememiz vardır, biritopic-based filtering ve diğeri content-based filtering.
Pub-sub modelinin yalnızca mesajlar aracılığıyla iletişim kurabildiğini unutmayın. Çok gevşek bağlı bir mimaridir; gönderenler bile abonelerinin kim olduğunu bilmiyor. Mesaj modellerinin çoğu, birçok abonenin zamanında erişmesi için mesaj aracısının yayın mesajlarını değiş tokuş etmesini sağlar. Gerçek hayattan bir örnek, spor, film, müzik vb. Gibi farklı kanalları yayınlayan Dish TV'dir ve herkes kendi kanallarına abone olabilir ve abone olduğu kanalları kullanılabilir olduğunda bunları alabilir.
Aşağıdaki tablo, popüler yüksek verimli mesajlaşma sistemlerinden bazılarını açıklamaktadır -
Dağıtılmış mesajlaşma sistemi | Açıklama |
---|---|
Apache Kafka | Kafka LinkedIn şirketinde geliştirildi ve daha sonra Apache'nin bir alt projesi oldu. Apache Kafka, aracı tarafından etkinleştirilen, kalıcı, dağıtılmış yayınlama-abone olma modelini temel alır. Kafka hızlı, ölçeklenebilir ve oldukça verimlidir. |
RabbitMQ | RabbitMQ, açık kaynak kodlu dağıtılmış sağlam bir mesajlaşma uygulamasıdır. Tüm platformlarda kullanımı kolaydır ve çalışır. |
JMS (Java Mesaj Servisi) | JMS, bir uygulamadan diğerine mesaj oluşturmayı, okumayı ve göndermeyi destekleyen açık kaynaklı bir API'dir. Garantili mesaj teslimi sağlar ve yayınlama-abone olma modelini takip eder. |
ActiveMQ | ActiveMQ mesajlaşma sistemi, JMS'nin açık kaynaklı bir API'sidir. |
ZeroMQ | ZeroMQ aracısız eşler arası mesaj işlemedir. Push-pull, yönlendirici-bayi mesaj modelleri sağlar. |
Kerkenez | Kestrel, hızlı, güvenilir ve basit bir dağıtılmış mesaj kuyruğudur. |
Tasarruf Protokolü
Thrift, diller arası hizmet geliştirme ve uzaktan yordam çağrısı (RPC) için Facebook'ta oluşturuldu. Daha sonra açık kaynaklı bir Apache projesi haline geldi. Apache Thrift birInterface Definition Language tanımlanmış veri türlerinin üzerine yeni veri türleri ve hizmet uygulamalarının kolay bir şekilde tanımlanmasına olanak tanır.
Apache Thrift ayrıca gömülü sistemleri, mobil uygulamaları, web uygulamalarını ve diğer birçok programlama dilini destekleyen bir iletişim çerçevesidir. Apache Thrift ile ilişkili temel özelliklerden bazıları modülerliği, esnekliği ve yüksek performansıdır. Ek olarak, dağıtılmış uygulamalarda akış, mesajlaşma ve RPC gerçekleştirebilir.
Storm, dahili iletişimi ve veri tanımı için Thrift Protokolünü kapsamlı şekilde kullanır. Fırtına topolojisi basitçeThrift Structs. Apache Storm'da topolojiyi çalıştıran Storm Nimbus,Thrift service.