Modern Yazılımda Mesajlaşma Sistemleri: Kafka, MQTT ve Daha Fazlası

Günümüz yazılım mimarileri hız, esneklik ve ölçeklenebilirlik gibi unsurlar üzerine inşa edilmektedir. Bu mimarilerin temel ihtiyaçlarından biri de sistem bileşenlerinin birbirleriyle nasıl haberleşeceği sorusudur. Mikroservisler, arka plan işleyiciler, analitik servisler ya da IoT cihazları. Her biri, bir şekilde veri göndermek veya gelen veriyi işlemek zorundadır. Bu noktada devreye mesajlaşma sistemleri girer. Bu sistemler, farklı parçalar arasında zaman bağımsız, güvenilir ve esnek bir iletişim kanalı kurar. Geleneksel doğrudan çağrı tabanlı mimarilerin yerini giderek daha fazla “event-driven” sistemler almaktadır ve mesajlaşma altyapısı bu dönüşümün temel taşıdır.  Bu yazıda, günümüzde yaygın olarak kullanılan mesajlaşma sistemlerini dört ana grupta sınıflandırarak ele alacağız. Her grup altında temsil niteliği taşıyan iki teknolojiyi detaylı bir şekilde inceleyecek; kullanım amaçları, avantajları, sınırlılıkları ve örnek senaryolarla hangi sistemin hangi ihtiyaca hitap ettiğini açıklayacağız. Yazının sonunda yer alan özet ve yönlendirme bölümü ise, sistem seçimi konusunda daha sağlıklı karar almanızı destekleyecektir.   Bu yazıda incelenecek sistemlerin tamamı, MIP platformunda farklı projelerde aktif olarak kullanılmakta ve bu yazı, saha gözlemlerine, gerçek uygulama senaryolarına ve teknik deneyimlere dayalı olarak hazırlanmıştır.

1. Queue Tabanlı Sistemler

Queue tabanlı sistemler, yazılım bileşenleri arasında görevlerin sıralı olarak işlenmesini sağlayan geleneksel bir mesajlaşma yaklaşımıdır. Bu yapılar, üretici ve tüketici modeline dayanır: üretici (producer) bir mesaj oluşturur ve bu mesaj, bir kuyrukta sıraya alınır. Tüketici (consumer) ise bu mesajları sırasıyla okur ve işler. Bu model sayesinde işlem yükü ayrıştırılır, sistem bileşenleri birbirine doğrudan bağımlı olmaktan kurtulur ve özellikle yüksek yük altında bile sistemin parçaları birbirinden etkilenmeden çalışabilir. Sipariş işlemleri, e-posta gönderimleri, belge üretimleri gibi zaman alan işler için oldukça uygundur.   
Queue Tabanlı Sistemler

a. RabbitMQ 

RabbitMQ, AMQP protokolüne dayalı, olgunlaşmış ve yaygın olarak kullanılan bir mesajlaşma sistemidir. Exchange > Queue > Consumer yapısı sayesinde esnek bir routing mekanizması sunar. Fanout, topic, direct ve headers tipinde exchange yapılarıyla farklı iş mantıkları uygulanabilir. 

RabbitMQ Avantajları: 

  • Routing konusunda yüksek esneklik 
  • Mesaj süreleri (TTL), gecikmeli kuyruk, mesaj önceliği gibi zengin destek 
  • Web tabanlı yönetim paneli ile kolay izlenebilirlik 
  • Geniş dil desteği (Java, Python, Go, .NET vb.) 

RabbitMQ Dezavantajları: 

  • Yüksek hacimli sistemlerde performans sınırlamaları olabilir 
  • Cluster yapısının kurulumu diğer sistemlere göre daha karmaşık 
  • Kalıcı veri saklama yönü zayıf; geçmiş veri sorgusu için uygun değildir .

RabbitMQ Ne Zaman Kullanılmalı? 

Arka planda iş yükün dağıtılması, görevlerin kuyruklanması ve mikrosistemler arası haberleşme gibi klasik mesajlaşma senaryoları için uygundur.

RabbitMQ ile İlgili Mini Senaryo: 

Bir e-ticaret sitesinde sipariş alındığında, RabbitMQ kuyruklarına ayrı ayrı fatura oluşturma, kargo bildirimi ve stok güncelleme mesajları gönderilir. But sayede işlemler bağımsız ve sıralı yürütülür. 

b. AWS SQS 

Amazon Simple Queue Service (SQS), AWS tarafından sunulan tam yönetilen bir mesajlaşma hizmetidir. Kuyruk mantığıyla çalışır ve geliştiricilere altyapı yönetimi gerektirmeden mesajlaşma kabiliyeti kazandırır. 

AWS SQS Avantajları: 

  • Sunucusuz, bakım gerektirmeyen altyapı 
  • Yüksek erişilebilirlik, AWS servisleriyle derin entegrasyon 
  • FIFO kuyruğu ve dead-letter queue desteği 
  • Geniş ölçeklenebilirlik 

AWS SQS Dezavantajları: 

  • Mesaj içerikleri görüntülenemez, yönetim sınırlı 
  • FIFO modda throughput düşer 
  • AWS dışı senaryolarda kullanımı sınırlı 

Amazon Simple Queue Service Ne Zaman Kullanılmalı?

AWS içinde gelişen uygulamalarda, doğrudan Lambda, Step Functions gibi servislerle mesajlaşma gereksinimi varsa tercih edilmelidir. 

AWS SQS ile İlgili Mini Senaryo:

Bir video platformunda kullanıcı video yüklediğinde SQS’e bir mesaj yazılır, bu mesajı okuyan arka plan işlemcisi videoyu dönüştürür ve indeksler. 

2. Event Streaming Sistemleri 

Event streaming sistemleri, sürekli üretilen verilerin (loglar, olaylar, kullanıcı etkileşimleri) gerçek zamanlı olarak toplanmasını, saklanmasını ve işlenmesini sağlar. Bu sistemler, verileri zaman sıralı bir şekilde depolar ve tüketicilerin bu verileri istedikleri noktadan başlayarak okumasına izin verir. Geleneksel kuyruklardan farklı olarak, mesaj bir kez tüketildikten sonra silinmez; veriler disk üzerinde bir süre tutulur. Bu sayede aynı veriyi farklı servisler farklı zamanlarda tekrar işleyebilir. Büyük veri mimarilerinde, log analitik sistemlerinde, event sourcing uygulamalarında ve gerçek zamanlı işleme gereksinimlerinde yaygın olarak kullanılır. 

Event Streaming Sistemleri

a. Apache Kafka Nedir?

Apache Kafka, dağıtık ve log tabanlı bir veri akış platformudur. Mesajlar topic adlı kategorilerde saklanır ve tüketiciler bu verileri istedikleri offset’ten okuyabilir. Veriler disk üzerinde belirli bir süre saklanabilir. 

Apache Kafka Avantajları: 

  • Milyonlarca mesajı yüksek hızda işleyebilir 
  • Replay, offset kontrolü ve çoklu tüketici desteği 
  • Event sourcing ve stream processing uygulamalarına uygun 
  • Çoklu abone, farklı işlem hatları için idealdir 

Apache Kafka Dezavantajları: 

  • Kurulum, yönetim ve optimizasyon açısından karmaşık 
  • Basit kuyruk senaryoları için ağır bir çözümdür 

Apache Kafka Ne Zaman Kullanılmalı?

Gerçek zamanlı olay analitiği, event sourcing yapıları, log toplayıcı sistemler ve yüksek hacimli veri işleme ihtiyacında tercih edilmelidir. 

Apache Kafka ile İlgili Mini Senaryo:

Bir haber sitesi tüm kullanıcı davranışlarını Kafka topic’lerine yazar. Bu olaylar aynı anda hem reklam motoru, hem tavsiye sistemi hem de raporlama sistemi tarafından bağımsız olarak işlenebilir.

b. Google Pub/Sub Nedir? 

Google Cloud Pub/Sub, GCP üzerinde çalışan, tam yönetilen bir publish-subscribe sistemidir. Olaylar bir topic’e yayınlanır, abone olan servisler bu olayları kendi zamanlarında işler. 

Google Pub/Sub Avantajları: 

  • Sunucusuz, otomatik ölçeklenir 
  • GCP servisleriyle doğrudan entegredir 
  • Fan-out senaryoları için çok uygundur 
  • Sıralı mesaj işleme desteği vardır (ordering key) 

Google Pub/Sub Dezavantajları: 

  • Yalnızca Google Cloud ortamında kullanılabilir 
  • Mesaj saklama süreleri sınırlıdır 

Google Pub/Sub Ne Zaman Kullanılmalı?

GCP üzerinde gelişen mikroservis yapılarında olay bazlı tetikleme ve çoklu hedefe veri yönlendirme senaryolarında tercih edilmelidir. 

Google Pub/Sub ile İlgili Mini Senaryo:

Bir SaaS uygulamasında yeni bir müşteri kaydı Pub/Sub’a bildirilir. Bu olaya abone olan sistemler: e-posta doğrulama, CRM güncelleme ve kampanya servisi otomatik olarak tetiklenir. 

3. Event Bus / Router Sistemleri 

Event bus sistemleri, mikroservisler veya uygulama bileşenleri arasında olay tabanlı iletişim kurmak amacıyla geliştirilmiş yapılardır. Bu sistemler, bir olay meydana geldiğinde bu olayı “ilgili” hedef sistemlere yönlendirir. Burada önemli olan nokta, yönlendirme işleminin içerik veya kurallara göre dinamik olarak yapılabilmesidir. Üretici sistemin, olayın kim tarafından işleneceğini bilmesine gerek yoktur. Bu da sistemler arasında gevşek bağlılık (loose coupling) sağlar. Modern mikroservis mimarilerinde, SaaS entegrasyonlarında ve genişleyebilir uygulama kurgularında bu tür sistemler kritik rol oynar. 

Event Bus Router Sistemleri

a. AWS EventBridge 

EventBridge, AWS içindeki servislerden gelen olayları filtreleyip farklı hedeflere yönlendiren bir event bus hizmetidir. SaaS uygulamalardan gelen olayları da destekler. 

AWS EventBridge Avantajları: 

  • AWS servisleriyle tam entegrasyon 
  • Kuralsal routing mantığı (JSON üzerinden) 
  • Minimum yönetim ihtiyacı 

AWS EventBridge Dezavantajları: 

  • AWS dışı ortamlarda kullanımı sınırlı 
  • Mesaj saklama süreleri sınırlıdır (24 saat) 

AWS EventBride Ne Zaman kullanılmalı?

AWS içerisindeki event-driven servis etkileşimi için, hızlı, bakımsız ve esnek bir yönlendirme katmanı olarak tercih edilmelidir.

Solace Event Mesh

Solace, protokol bağımsız çalışan, kurumsal seviyede gerçek zamanlı event mesh altyapısı sunar. Farklı ortamlar ve sistemler arasında olay bazlı entegrasyon sağlar. 

Solace Event Mesh Avantajları: 

  • MQTT, AMQP, JMS gibi protokollerle çoklu destek 
  • Gerçek zamanlı veri aktarımı 
  • Hibrit bulut entegrasyonu 

Solace Event Mesh Dezavantajları: 

  • Ticari lisans maliyeti 
  • Yönetim ve yapılandırma karmaşık olabilir 

Solace Event Mesh Ne Zaman Kullanılmalı?

Kurumsal ortamlarda, hibrit sistemlerde, çoklu protokol ve coğrafi yayın gerektiren senaryolarda tercih edilir.

4. IoT ve Hafif Protokol Sistemleri  

IoT dünyasında yer alan cihazlar genellikle düşük işlem gücüne, sınırlı bellek kaynaklarına ve dengesiz bağlantı koşullarına sahiptir. Bu nedenle klasik mesajlaşma protokolleri bu ortamlarda verimli çalışmaz. Hafif protokol tabanlı sistemler, özellikle az veri taşıyan, sık ama küçük mesajlar gönderen cihazlar arasında güvenli ve düşük bant genişliğiyle çalışan iletişim modelleri sunar. Sensör ağları, akıllı ev sistemleri, araç içi veri iletimi gibi senaryolarda yaygın şekilde kullanılmaktadır.

IoT ve Hafif Protokol Sistemleri

a. MQTT

MQTT (Message Queuing Telemetry Transport), publish-subscribe temelli, TCP üzerinden çalışan, ağır protokollere alternatif olarak geliştirilmiş bir mesajlaşma yapısıdır. 

MQTT (Avantajları: 

  • Son derece hafif ve düşük bant genişliği tüketimi 
  • QoS seviyeleriyle teslimat kontrolü 
  • Uğursuz bağlantılara karşı tolerans 

MQTT Dezavantajları: 

  • Mesaj saklama yoktur, anlık çalışır 
  • Güvenlik ve yetkilendirme dış servislere bırakılır 

MQTT Ne Zaman Kullanılmalı?

IoT cihazları, sensörler ve mobil cihazlar arasında anlık, az verili ve düşük enerji tüketimli iletişim ihtiyacı varsa tercih edilir. 

Alternatif: Redis 

Her ne kadar Redis bir mesajlaşma sistemi olarak tasarlanmamış olsa da, basit mesaj kuyrukları veya geçici publish-subscribe ihtiyaçlarında kullanılabilecek alternatif mekanizmalar sunar. Redis’in bellek içi hızlı yapısı sayesinde küçük ölçekli senaryolarda zaman kazandırabilir. Ancak kalıcılık, mesaj garantisi, sıralama ve izlenebilirlik gibi konularda eksiklikleri bulunduğundan kritik sistemlerde yalnızca yardımcı araç olarak düşünülmelidir. 

JMS Sistemleri 

Java Message Service (JMS), Java tabanlı kurumsal uygulamalarda yaygın olarak kullanılan bir mesajlaşma API’sidir. JMS, hem kuyruk hem de publish-subscribe modellerini destekler. ActiveMQ ve IBM MQ gibi çözümler bu standardı uygular. Modern sistemlerde kullanımı azalmış olsa da, hâlâ çok sayıda legacy sistemde görev yapmaktadır. Özellikle Java tabanlı büyük kurumsal mimarilerde eski sistemlerle yeni teknolojilerin entegrasyonu sağlanırken JMS çözümleri önemli bir rol oynar.

Teknik Farklar Tablosu

Teknik Farklar Tablosu

Sonuç 

Mesajlaşma sistemleri, modern uygulamaların omurgasını oluşturan ve bileşenler arasındaki iletişimi esnek, yüksek performanslı ve güvenli bir şekilde yönetmeyi sağlayan altyapılardır. Her sistemin çözüm sunduğu problem alanı farklıdır: kimisi veri hacmi büyüdükçe parlamaya başlar, kimisi sistemleri birbirinden ayırarak yönetimi kolaylaştırır, kimisi ise sınırlı cihazlarda bile güvenilir iletişimi mümkün kılar. 

Bu yazıda ele aldığımız RabbitMQ, Kafka, Google Pub/Sub, MQTT gibi sistemlerin her biri farklı ihtiyaçlara yanıt verir. Kimi zaman bir arka plan görevi yönetmek için basit bir kuyruk sistemi yeterli olurken, kimi zaman da milyonlarca olayı eş zamanlı olarak işlemek için karmaşık ve dağıtık bir log altyapısına ihtiyaç duyulur. 

Yazı boyunca ele alınan sistemler, MIP platformunda farklı ihtiyaçlara yönelik olarak uygulanmış gerçek projelerden süzülen deneyimlerle desteklenmiştir. Burada sunulan değerlendirmeler ve öneriler, sizin için en uygun mesajlaşma altyapısını seçerken sağlam bir referans olabilir. 

Mesajlaşma altyapısı için MIP hakkında daha fazla bilgi için bizimle iletişime geçebilirsiniz.

Similar Blog

4HANA Geçişinde Entegrasyon Katmanının Önemi ve MIP’in Rolü
  • MIP Rehberi

S/4HANA Geçişinde Entegrasyon Katmanının Önemi ve MIP’in Rolü

SAP ECC’den S/4HANA’ya geçiş, işletmeler için sadece bir ERP güncellemesi değildir. Aynı zamanda dijital mimarinin yeniden tasarlandığı, veri akışlarının optimize edildiği ve iş süreçlerinin modernleştirildiği bir dönüşüm sürecidir. S/4HANA geçiş projesini başarılı olması için ERP sisteminin kurulumu yeterli değildir. Sistemler arası entegrasyonun hızlı, güvenli ve esnek yönetilmesi de gereklidir. MIP (usemip.com), S/4HANA dönüşüm projelerinde merkezi […]

Learn More
SAP PI/PO’ya Alternatif Arayanlar İçin Karşılaştırmalı MIP Rehberi
  • MIP Rehberi

SAP PI/PO’ya Alternatif Arayanlar İçin Karşılaştırmalı MIP Rehberi

Yıllarca SAP müşterilerine hizmet veren PI/PO, kurumsal entegrasyonlarda bir standart olarak konumlandı. Ancak dijital dönüşümün ve bulut tabanlı sistemlerin ön plana çıktığı günümüzde, bu yapının sınırları net şekilde hissedilmeye başladı. SAP PI/PO’nun 7.5 sürümü için SAP’nin desteği 31 Aralık 2027 itibariyle sona erecek. Uzatılmış destek ise 2030’a kadar sürecek. Bu yüzden, işletmeler şimdiden farklı entegrasyon […]

Learn More
Kargo Entegrasyonu Nedir_ MIP ile Nasıl Yapılır_ (6)
  • MIP Rehberi

Kargo Entegrasyonu Nedir? MIP ile Nasıl Yapılır?

Kargo entegrasyonu, günümüz e-ticaret ve lojistik operasyonlarının en önemli yapı taşlarından biri haline geldi. Siparişten teslimata kadar uzanan bu süreçte, ERP sisteminizle doğrudan entegre çalışan bir kargo altyapısı, müşteri memnuniyetinden operasyonel verimliliğe kadar birçok alanda fark yaratır. Peki bu entegrasyon nasıl sağlanır? Kargo firmalarıyla ERP sisteminizi nasıl konuşturabilirsiniz? MIP bu süreci nasıl kolaylaştırır? Hepsini bu […]

Learn More
MIP ile OpenAI API Entegrasyonu_ Adım Adım Rehber
  • MIP Rehberi

MIP ile OpenAI API Entegrasyonu: Adım Adım Rehber

MIP, OpenAI API’leriyle sorunsuz bağlantılar kurmanıza olanak tanıyan güçlü ve esnek bir entegrasyon platformudur. Bu rehberde, MIP ile OpenAI API entegrasyonunun adımlarını birlikte inceleyeceğiz. 1. MIP’de Package ve Flow Oluşturma İlk olarak, MIP platformunda bir package ve akış (flow) oluşturuyoruz. Daha sonra entegrasyon akışını açıyoruz. Sol üst köşedeki düğmeye tıklayarak yeni bir akış konfigürasyonu ekliyoruz. […]

Learn More
Banka Entegrasyonu_ MIP ile Finansal Süreçlerde Yeni Dönem
  • MIP Rehberi

Banka Entegrasyonu: MIP ile Finansal Süreçlerde Yeni Dönem

Dijitalleşmenin hız kazanmasıyla birlikte, işletmeler yalnızca SAP sistemlerini değil, tüm finansal operasyonlarını uçtan uca entegre etme ihtiyacı duyuyor. Günümüzde birçok şirket, birden fazla banka ile çalışıyor ve her bir bankanın hesap hareketlerini manuel takip etmeye çalışıyor. Bu manuel süreçler arasında; Farklı banka portallarına tek tek giriş yapmak, Hesap hareketlerini kontrol edip SAP sistemine manuel olarak […]

Learn More
Modern Yazılımda Mesajlaşma Sistemleri_ Kafka, MQTT ve Daha Fazlası (1)
  • Entegrasyon

Modern Yazılımda Mesajlaşma Sistemleri: Kafka, MQTT ve Daha Fazlası

Günümüz yazılım mimarileri hız, esneklik ve ölçeklenebilirlik gibi unsurlar üzerine inşa edilmektedir. Bu mimarilerin temel ihtiyaçlarından biri de sistem bileşenlerinin birbirleriyle nasıl haberleşeceği sorusudur. Mikroservisler, arka plan işleyiciler, analitik servisler ya da IoT cihazları. Her biri, bir şekilde veri göndermek veya gelen veriyi işlemek zorundadır. Bu noktada devreye mesajlaşma sistemleri girer. Bu sistemler, farklı parçalar […]

Learn More

Subscribe to our newsletter to dive integration world!

Join our exclusive newsletter community for insider tips, industry updates, and the latest trends in integration technology.