O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Apache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - Türkçe

1.652 visualizações

Publicada em

Yüksek performanslı ve ölçeklenebilir mesajlaşma sistemleri konusunda açık kaynak kodlu bir çözüm olarak ilk akla gelenlerden biri olan Apache Kafka hakkında bir sunumdur.

Publicada em: Software
  • Seja o primeiro a comentar

Apache Kafka - Yüksek Performanslı Dağıtık Mesajlaşma Sistemi - Türkçe

  1. 1. Yüksek Performanslı Dağıtık Mesajlaşma Sistemi Emre Akış @akisemre
  2. 2. Özet • Neden Apache Kafka kullanalım ? • Aslında nedir? • Nasıl çalışır ? • Ekosistem 1
  3. 3. Büyük Veri (Big Data) • Bir bilgisayara sığmayan veri • Dağıtık sistemlere hoş geldiniz  2
  4. 4. Gerçek Zamanlı Veri Analitiği • Olaylar (Events) (örn: “clickstream”ler) • Sensörler • Şeylerin interneti (Internet of Things - IoT) • Veri akımları (Data streams) 3
  5. 5. Mesajlaşma Kuyruğu 4 FIFO – İlk giren ilk çıkar
  6. 6. Dağıtık Mesajlaşma Kuyruğu • Ölçeklenebilir • Güvenilir • Yüksek performans (okumada,yazmada) 5
  7. 7. Neden Apache Kafka Kullanalım ? • Temiz ve basit mimari • Kullanımı kolay • Kurulması kolay • Yüksek performans • Ölçeklenebilirlik • Yüksek kullanılabilirlik (high availability) • Kalıcılık (bir süreliğine) 6
  8. 8. Küme (Cluster) 7 Dil bağımsız TCP protokolü Küme => grup halindeki sunucular (brokerlar)
  9. 9. Konu (Topic) 8 • Mesajların gönderildiği kategori ismi • Bölümlendirilmiş log • Her bölüm – Sıralı – Değişmez sıralı – Sona eklemeli offset => sıralı bir sayı
  10. 10. Bölüm Dağılımı (Partition Distribution) • Küme içindeki sunucular arasında dağıtılmış • Hata toleransı için kopyalanmış (ayarlanabilir) • Her bölümün bir lideri olur (okuma,yazma) • Diğerleri lideri takip eder (lideri kopyala) • Bölüm hatası durumunda takipçilerden biri yeni lider olur 9
  11. 11. Üretici (Producer) • Hangi mesaj hangi bölüme karar verir – Round-robin – Semantik bölümleme (semantic partitioning) 10
  12. 12. Tüketici (Consumer) • Queue vs. Publish/Subscribe • Geleneksel kuyruk sıralama vs. bölüm başına sıralama 11
  13. 13. Garantiler • Bir bölümdeki mesajlar, üreticinin gönderdiği sıradadır. • Tüketiciler mesajları logdaki kayıt sırasında okurlar. 12
  14. 14. İstemciler • Java • Python • Ruby • Go • C/C++ • .NET • Clojure • Node.js • Scala • JRuby • Perl • Erlang • PHP • Rust • HTTP Rest 13https://cwiki.apache.org/confluence/display/KAFKA/Clients
  15. 15. Ekosistem • Samza • Spark Streaming • Storm • Flink • Kafka Streams 14https://cwiki.apache.org/confluence/display/KAFKA/Ecosystem
  16. 16. Eski Sistem 15 Clickstream Tampon Yazma Toplayıcı Uygulama İstemci-1 İstemci-2 Okuma Okuma
  17. 17. Yeni Sistem 16 Clickstream Yazma Toplayıcı Uygulama İstemci-1 İstemci-2 (1) (2) TamponYazma
  18. 18. Kullanım Senaryoları • Messaging • Website activity tracking (at Linkedin) • Metrics • Log aggregation • Stream processing (with Storm or Samza) • Event sourcing (state changes are logged by time) • Commit log (like database transaction log – log compaction) 17
  19. 19. Kimler Kullanıyor ? • LinkedIn • Yahoo • Twitter • Netflix • Spotify • Pinterest • Uber • Goldman Sachs • Tumblr • PayPal • Box • Airbnb • Mozilla • Cisco • Etsy • Foursquare • StumbleUpon • Coursera • Oracle • … 18https://cwiki.apache.org/confluence/display/KAFKA/Powered+By
  20. 20. Kaynaklar • http://kafka.apache.org/ • https://cwiki.apache.org/confluence/display/KAFKA/Index • https://cwiki.apache.org/confluence/display/KAFKA/Ecosystem • http://www.confluent.io/blog • http://www.slideshare.net/miguno/apache-kafka-08-basic- training-verisign • http://devveri.com/big-data/apache-kafka (Türkçe yazım) • http://www.slideshare.net/EmreAkis1/apache-kafka-yksek- performansl-datk-mesajlama-sistemi-trke (sunum) 19
  21. 21. Soru & Cevap 20

×