Pub/Sub Temelleri, RabbitMQ ve Apache KafkaVolkan AltanSunum içinde geçen ClickStream Projesi için örnek anlatım https://medium.com/@volkana/gerçek-zamanlı-analiz-projesi-51dc6771dca0
Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...Tolga Kaprol1. ULUSAL BULUT BİLİŞİM ve BÜYÜK VERİ
SEMPOZYUMU B3S’17 19-20 EKİM 2017 Antalya / TÜRKİYE
More Related Content
Similar to Event Driven Architecture And Message Queues by Orçun Çolak (20)
Pub/Sub Temelleri, RabbitMQ ve Apache KafkaVolkan AltanSunum içinde geçen ClickStream Projesi için örnek anlatım https://medium.com/@volkana/gerçek-zamanlı-analiz-projesi-51dc6771dca0
Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...Tolga Kaprol1. ULUSAL BULUT BİLİŞİM ve BÜYÜK VERİ
SEMPOZYUMU B3S’17 19-20 EKİM 2017 Antalya / TÜRKİYE
2. EDA İçin İki Temel Yöntem
1. Pub/Sub
Messaging infrastructure keeps track of
subscriptions.
2. Event Streaming
Events are written to a log.
3. Message Queue
- Mimarinin asenkron olmasını sağlar
- Üreten ve tüketen tarafın birbirinden bağımsız
olmasını sağlar (Loose Coupling)
- 1990’lardan beri piyasada MQ’lar var.
- IBM MQSeries (1993), Microsoft MQ (1997)
TIBCO (1997) vs
4. Temelde İki Çeşit MQ Var
- Broker kullanan MQ (RabbitMQ, JMS)
- Broker kullanmayan MQ (DDS)
Biz sadece Broker kullanan çözümlere bakacağız
5. JMS
2001 yılında ortaya çıktı. Bir API’den ibaret.
Protocol değildir.
- Point-to-Point ve Publish-Subsribe modeli
destekler
- ActiveMQ, WebSphereMQ, RabbitMQ vs.
7. Advanced Message Queuing
Protocol
2003-2006 yılında ortaya çıktı. API değil bir
protokol
- AMQP protokolünü gerçekleştiren bir broker’a
Java, C# vs gibi uygulamalar bağlanabilir.
- RabbitMQ, Apahe Qpid vs.
9. Advanced Message Queuing
Protocol
Farklı Exchange Tiplerini Destekler
- Direct Exchange : Point-to-Point
- Topic Exchange : Key değerine göre Pub/Sub
- Fanout Exchange – Klasik Pub/Sub
- Header Exchange : Mesaj içinde bir alana göre
Pub/Sub
10. JMS ve AMQP
- “Push” modelini kullanır ve mesajın ulaştığını
garanti etmeye çalışır.
- Yani kontrol broker tarafında
- Bu yüzden “Rety Logic”, “Dead Letter” kontrolleri
var
11. MQ Scability Talebi Arttıkça
- Broker’lar push modelini bıraktı
- Consumer ise pull modelini gerçekleştiren taraf
oldu
12. Kafka
- 2011 yılında ortaya çıktı. Herhangi bir standart
kullanmıyor.
- Broker bir “event log” gibi çalışır. Mesajları
konfigürasyonda belirtilen süre kadar saklar
- Cluster olarak çalışır, kolay ölçeklenir
- Mesajları çekmek istemcinin görevi
- Mesaj işlenince silinmez
13. Kafka Kavramları
- Producer : Veriyi Kafka Cluster’a yazar. Veri
partition’a gönderilir
- Consumer : Veriyi Kafka’dan okur
- Consumer Group : Gruptaki her bir Consumer
kendisine atanan Partition’daki veriyi işler.
Gruptaki consumer sayısı değişince broker
"Rebalance" işlemi başlatır
14. Kafka Ekosistemi – Kafka
Connectors
- Source Connector : Veriyi bir kaynaktan okur ve
Kafka Topic’e yazar
- Sink Connector : Kafka Topic’teki veriyi bir
başka yere yazar
17. Kafka Ekosistemi – Kafka Streams
- Buraya kadar “Enterprise Messaging” gibi
düşündük
- Artık Event Streaming düşünülebilir
- Event Streaming sınırsız ve sürekli akan veriyi
işler
- Mesajları bireysel değil, bütünsel olarak ele alır.
Yani aggregation öne çıkıyor.
19. Streaming Örnekleri
- Amaç sürekli güncellenen veriye, batch işlem
uygulamadan cevap verebilmek. Buna “Interactive
Queries” deniliyor.
- İnternet paketi bitince mobil’in kapanması
- Şu anda stokta kaç tane X var