SlideShare a Scribd company logo
1 of 21
Event Driven Architecture (EDA)
Bir Üst Başlıktır
EDA İçin İki Temel Yöntem
1. Pub/Sub
Messaging infrastructure keeps track of
subscriptions.
2. Event Streaming
Events are written to a log.
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
Temelde İki Çeşit MQ Var
- Broker kullanan MQ (RabbitMQ, JMS)
- Broker kullanmayan MQ (DDS)
Biz sadece Broker kullanan çözümlere bakacağız
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.
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.
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
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
MQ Scability Talebi Arttıkça
- Broker’lar push modelini bıraktı
- Consumer ise pull modelini gerçekleştiren taraf
oldu
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
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
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
Debezium – Before/After Farkını
Verir
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.
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
Lambda Architecture – Big Data
Kappa Architecture – Batch
Processing Kısmı Yok

More Related Content

Similar to Event Driven Architecture And Message Queues by Orçun Çolak

Ağ i̇şleti̇m si̇stemleri̇ne örnekler
Ağ i̇şleti̇m si̇stemleri̇ne örneklerAğ i̇şleti̇m si̇stemleri̇ne örnekler
Ağ i̇şleti̇m si̇stemleri̇ne örnekler
Alonelaz
 
baskıyagiden-IP-MPLSaglaruzerindesanalyerelservisler-reviewdan-sonra
baskıyagiden-IP-MPLSaglaruzerindesanalyerelservisler-reviewdan-sonrabaskıyagiden-IP-MPLSaglaruzerindesanalyerelservisler-reviewdan-sonra
baskıyagiden-IP-MPLSaglaruzerindesanalyerelservisler-reviewdan-sonra
Fatih Erdem
 
Sistem ve network
Sistem ve networkSistem ve network
Sistem ve network
Aba Emekçi
 

Similar to Event Driven Architecture And Message Queues by Orçun Çolak (20)

Pub/Sub Temelleri Ve Apache Kafka
Pub/Sub Temelleri Ve Apache KafkaPub/Sub Temelleri Ve Apache Kafka
Pub/Sub Temelleri Ve Apache Kafka
 
Pub/Sub Temelleri, RabbitMQ ve Apache Kafka
Pub/Sub Temelleri, RabbitMQ ve Apache KafkaPub/Sub Temelleri, RabbitMQ ve Apache Kafka
Pub/Sub Temelleri, RabbitMQ ve Apache Kafka
 
Ağ i̇şleti̇m si̇stemleri̇ne örnekler
Ağ i̇şleti̇m si̇stemleri̇ne örneklerAğ i̇şleti̇m si̇stemleri̇ne örnekler
Ağ i̇şleti̇m si̇stemleri̇ne örnekler
 
Osi BilisimOgretmenim
Osi BilisimOgretmenimOsi BilisimOgretmenim
Osi BilisimOgretmenim
 
Osi
OsiOsi
Osi
 
baskıyagiden-IP-MPLSaglaruzerindesanalyerelservisler-reviewdan-sonra
baskıyagiden-IP-MPLSaglaruzerindesanalyerelservisler-reviewdan-sonrabaskıyagiden-IP-MPLSaglaruzerindesanalyerelservisler-reviewdan-sonra
baskıyagiden-IP-MPLSaglaruzerindesanalyerelservisler-reviewdan-sonra
 
Cloud_Computer
Cloud_ComputerCloud_Computer
Cloud_Computer
 
Openstack Magnum CaaS
Openstack Magnum CaaSOpenstack Magnum CaaS
Openstack Magnum CaaS
 
Microsoft Azure Temelleri - Modul 1
Microsoft Azure Temelleri - Modul 1Microsoft Azure Temelleri - Modul 1
Microsoft Azure Temelleri - Modul 1
 
Windows Clusters
Windows ClustersWindows Clusters
Windows Clusters
 
Sistem ve network
Sistem ve networkSistem ve network
Sistem ve network
 
Microsoft Exchange Server 2010 Genel
Microsoft Exchange Server 2010 GenelMicrosoft Exchange Server 2010 Genel
Microsoft Exchange Server 2010 Genel
 
IP Multicasting Turk-IoT
IP Multicasting Turk-IoTIP Multicasting Turk-IoT
IP Multicasting Turk-IoT
 
Node js part 1 shared
Node js part 1 sharedNode js part 1 shared
Node js part 1 shared
 
Cloud computing and technologies
Cloud computing and technologiesCloud computing and technologies
Cloud computing and technologies
 
Docker Nedir, Ne İşe Yarar, Nasıl Kullanılmalıdır?
Docker Nedir, Ne İşe Yarar, Nasıl Kullanılmalıdır? Docker Nedir, Ne İşe Yarar, Nasıl Kullanılmalıdır?
Docker Nedir, Ne İşe Yarar, Nasıl Kullanılmalıdır?
 
WCF'e Giriş
WCF'e GirişWCF'e Giriş
WCF'e Giriş
 
2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği
2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği
2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği
 
Docker ve kubernetes ile ilgili kısa bilgilendirmeler
Docker ve kubernetes ile ilgili kısa bilgilendirmeler Docker ve kubernetes ile ilgili kısa bilgilendirmeler
Docker ve kubernetes ile ilgili kısa bilgilendirmeler
 
Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...
Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...
Sinema Seans Bilgi ve Rezervasyon Sisteminin Mikro Servis Yaklaşımıyla Gelişt...
 

Event Driven Architecture And Message Queues by Orçun Çolak

  • 1. Event Driven Architecture (EDA) Bir Üst Başlıktır
  • 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.
  • 6.
  • 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.
  • 8.
  • 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
  • 15.
  • 16. Debezium – Before/After Farkını Verir
  • 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.
  • 18.
  • 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
  • 21. Kappa Architecture – Batch Processing Kısmı Yok