Apache Kafka — LinkedIn kompaniyasida Jey Kreps boshchiligidagi jamoa tomonidan ishlab chiqilgan va 2011-yilda ochiq manba sifatida taqdim etilgan, taqsimlangan voqealar oqimi (event streaming) platformasi. Til nomi yozuvchi Frans Kafka sharafiga qo’yilgan — Kreps buni Kafka’ning yozuvlarga qaratilgan (log-oriented) tizim ekanligiga ishora sifatida hazil tariqasida tanlagan.
LinkedIn’da yaratilish sababi
LinkedIn’da turli tizimlar (foydalanuvchi faoliyati, tavsiyalar, monitoring) orasida ma’lumot almashish borgan sari murakkablashib, o’nlab nuqta-ma’-nuqta integratsiyalarga aylanib borayotgan edi. Kafka barcha ma’lumot oqimlarini yagona, markazlashgan platforma orqali o’tkazish g’oyasini amalga oshirish uchun yaratilgan.
Voqealar oqimi modeli
Kafka’da ma’lumot “voqea” (event) sifatida ifodalanadi va bu voqealar doimiy, o’zgarmas jurnalga (log) yoziladi. “Producer” deb ataladigan tizimlar voqea yozadi, “consumer” deb ataladigan tizimlar esa bu voqealarni o’qiydi — bu ikkalasi bir-biridan mustaqil, real vaqtda yoki keyinroq ishlashi mumkin.
Topic va partition tuzilishi
Kafka’dagi ma’lumotlar “topic” deb ataladigan mantiqiy kanallar bo’yicha guruhlanadi, har bir topic esa parallel qayta ishlashni ta’minlash uchun bir nechta “partition“ga bo’linadi. Bu tuzilish Kafka’ga bir vaqtning o’zida millionlab voqeani qayta ishlash imkonini beradi.
Yuqori o’tkazuvchanlik va saqlash muddati
An’anaviy xabar navbatlaridan farqli o’laroq, Kafka o’qilgan voqealarni darhol o’chirmaydi — voqealar belgilangan muddat (masalan, bir hafta) davomida saqlanadi, bu esa bir nechta iste’molchiga bir xil ma’lumotni turli vaqtda qayta o’qish imkonini beradi.
Qo’llanilish sohalari
Kafka real vaqtda ma’lumotlarni tahlil qilish, mikroservislar orasida hodisalarga asoslangan aloqa va log yig’ish tizimlarida keng qo’llaniladi. Netflix, Uber va LinkedIn’ning o’zi kabi kompaniyalar Kafka’dan kuniga trillionlab xabarlarni qayta ishlash uchun foydalanadi.
Bog’liq tushunchalar
LinkedIn, Voqealar oqimi, Message broker, Taqsimlangan tizimlar, Producer/Consumer, ZooKeeper, Mikroservis