Junior
Kafka nima?
sobes.tech AI
AIdan javob
Tarqiblangan, nosozliklarga chidamli publish-subscribe xabar almashish tizimi, LinkedIn tomonidan ishlab chiqilgan va Apache loyihasiga aylangan. Real vaqtda ma'lumotlar pipeline'larini va streaming ilovalarini qurish uchun ishlatiladi.
Asosiy komponentlar va tushunchalar:
- Broker: Kafka serveri. Kafka klasteri bir yoki bir nechta brokerlardan iborat.
- Topic: Xabarlar chop etiladigan toifalar. Ma'lumot oqimlarini mantiqan ajratadi.
- Partition: Topic bo'linmalarga bo'lingan. Har bir bo'linma tartiblangan va o'zgartirilmaydigan xabarlar ketma-ketligi. Bo'linmadagi xabarlar uchun noyob ofset (offset) mavjud.
- Producer: Xabarlarni topicga chop etadigan ilova.
- Consumer: Topicga obuna bo'lib, xabarlarni iste'mol qiladigan ilova.
- Consumer Group: Bir yoki bir nechta topiclardan xabarlarni birgalikda iste'mol qiladigan iste'molchilar guruhi. Bir bo'linmadagi xabarlar faqatgina guruhdagi bitta iste'molchiga yetkaziladi.
- Zookeeper: Kafka klasterini muvofiqlashtirish uchun ishlatiladi (brokerlar, topiclar, bo'linmalar, iste'molchilar guruhlarining ofsetlarini boshqarish). So'nggi versiyalarda, Zookeeper roli qisman KRaft ichki konsensus xizmatiga o'tkaziladi.
Kafka yuqori o'tkazuvchanlik, kengaytirilish va nosozliklarga chidamlilikni brokerlar orasida bo'linmalarni replikatsiya qilish orqali ta'minlaydi. Xabarlar diskda saqlanadi va belgilangan muddat davomida iste'molchilarga mavjud bo'ladi.
Foydalanish misollari:
- Loglarni real vaqtda yig'ish va ishlash.
- Streaming ma'lumotlarni ishlash (Kafka Streams, KSQL orqali).
- Xizmatlarni ajratish (mikroservis arxitekturasi).
- Tizimlar o'rtasida ma'lumotlarni sinxronlashtirish.