Pengenalan Ekosistem Big Data – Apache Kafka

Apache Kafka adalah platform untuk distributed streaming.

  • Berguna untuk Publish/Subscribe untuk streams records.
  • Dapat Anda bayangkan sebagai message bus, tetapi untuk data.
  • Didesain high-troughput dan low latency.

Sebelum didonasikan ke Apache Project, digunakan oleh Linkedin untuk memproses 800 miliar message per hari dengan ukuran lebih dari 175 TB data, dijalankan diatas 60 Kafka cluster.

Ada 4 API yang disediakan Kafka:

  • Producer, digunakan aplikasi untuk publish stream records ke Kafka Topic.
  • Consumer, digunakan aplikasi untuk subscribe ke satu atau lebih dari satu Topic dan memproses stream records didalamnya.
  • Streams, digunakan aplikasi untuk bertindak sebagai stream processor.Berguna jika akan men-transform data dan mengembalikan langsung ke Kafka sebagai outgoing stream.
  • Connector, extend Kafka dengan menghubungkan Producer dan Consumer ke external sistem seperti Relational Database.

Berikut diagram dari arsitektur Kafka. Terdapat standalone sistem ZOOKEEPER yang berguna untuk mengkoordinasi cluster.

Berikut perbedaan antara Kafka dan Google Pub/Sub

KafkaPub/Sub
Guaranteed message orderingTidak ada jaminan message ordering
Tuneable message retentionMaks 7 hari message retention
Pooling (pull) subscriptions onlyPull or Push subscriptions
UnamangedManaged
Sharing is caring: