Apache Kafka
Apache Kafka[1] | |
---|---|
![]() | |
Pembuat asal | Neha Narkhede |
Pembangun | Yayasan Perisian Apache |
Pelancaran pertama | Januari 2011[2] |
Versi terkini/stabil | 2.1.0 (20 November 2018 | )
Ditulis dalam | Scala, Java |
Sistem pengendalian | Rentas-pelantar |
Jenis | Message-oriented middleware, perisian bebas |
Genre | Pemprosesan strim, Broker pesanan |
Lesen | Lesen Apache 2.0 |
Pautan berkaitan | |
Tapak web | kafka |
Repositori | |
Pautan lain | ![]() ![]() |
sunting · sunting di Wikidata![]() |
Apache Kafka ialah sebuah pelantar perisian pemprosesan strim sumber terbuka yang dibangunkan oleh Linkedin dan kemudiannya didermakan kepada Yayasan Perisian Apache. Ia dibangunkan menggunakan bahasa pengaturcaraan Scala dan Java.
Sejarah
Pembangunan Apache Kafka dimulakan oleh LinkedIn yang kemudiannya menyumberterbukakannya pada awal tahun 2011. Ia telah keluar dari Apache Incubator pada 23 Oktober 2012. Pada tahun 2014, Jun Rao, Key Kreps, dan Neha Narkhede, yang telah mengusahakan Kafka di LinkedIn, telah membuka sebuah syarikat baharu bernama Confluent yang bertujuan untuk menumpukan perhatian kepada Kafka.[3] Menurut sebuah utusan Quora pada tahun 2014, Kreps menamakan perisian ini sempena nama penulis Franz Kafka kerana ia adalah "sebuah sistem yang dioptimumkan untuk penulisan", di samping kerana menggemari karya-karya Franz.[4]
Seni bina Apache Kafka

Kafka menyimpan pesanan-pesanan kekunci-nilai (key-value) yang datang daripada seberapa banyak proses yang dipanggil penerbit. Data boleh diasing-asingkan kepada "sesekat" (partition) berbeza dalam "topik" berlainan. Dalam sesebuah sesekat, pesanan disusun rapi mengikut ofsetnya (kedudukan pesanan dalam sesekat), lalu diindekskan dan disimpan bersama-sama cap waktu (timestamp). Proses-proses lain yang dipanggil "pengguna" (consumer) dapat membaca pesanan daripada sesekat. Kafka menawarkan Streams API untuk pemprosesan strim yang membolehkan penulisan aplikasi-aplikasi Java yang menggunakan data daripada Kafka dan menulis hasil balik kepada Kafka. Apache Kafka juga mampu bekerja sama dengan sistem pemprosesan strim luar seperti Apache Apex, Apache Flink, Apache Spark, dan Apache Storm.
Kafka dijalankan pada gagasan satu atau lebih pelayan (dipanggil broker), dan sesekat-sesekat bagi kesemua topik diagih-agihkan antara nod-nod gagasan. Tambahan lagi, sesekat-sesekat direplikakan kepada banyak broker. Seni bina ini mebolehkan Kafka mengirim strim pesanan berskala besar dalam gaya yang tahan gagal dan telah membolehkannya menggantikan beberapa sistem pesanan terdahulu seperti Java Message Service (JMS), Advanced Message Queuing Protocol (AMQP), dan sebagainya. Sejak keluaran 0.11.0.0, Kafka menawarkan tulisan bertransaksi, yang menyediakan pemprosesan strim tepat sekali menggunakan Streams API.
Rujukan
- ^ "Apache Kafka at GitHub". github.com. Dicapai pada 5 March 2018.
- ^ "Open-sourcing Kafka, LinkedIn's distributed message queue". Dicapai pada 27 October 2016.
- ^ Primack, Dan. "LinkedIn engineers spin out to launch 'Kafka' startup Confluent". fortune.com. Dicapai pada 10 February 2015.
- ^ "What is the relation between Kafka, the writer, and Apache Kafka, the distributed messaging system?". Quora. Dicapai pada 2017-06-12.