Bosh sahifa Wiki Kafka

Kafka

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