Junior
Čo je Kafka?
sobes.tech AI
Odpoveď od AI
Distribuovaný, odolný voči chybám systém publish-subscribe správovej výmeny, vyvinutý spoločnosťou LinkedIn a stal sa projektom Apache. Používa sa na budovanie dátových pipelineov v reálnom čase a streamingových aplikácií.
Hlavné komponenty a koncepty:
- Broker: Kafka server. Kafka klaster sa skladá z jedného alebo viacerých brokerov.
- Topic: Kategória, do ktorej sa publikujú správy. Logicky rozdeľuje dátové toky.
- Partition: Téma je rozdelená na partitiony. Každá partition je usporiadaná, nemenná sekvencia správ. Správy v rámci partitionu majú jedinečné posunutie (offset).
- Producer: Aplikácia, ktorá publikuje správy do témy.
- Consumer: Aplikácia, ktorá sa prihlási na tému a konzumuje správy.
- Consumer Group: Skupina konzumentov, ktorí spoločne konzumujú správy z jednej alebo viacerých tém. Správy z partitionu sú doručované iba jednému konzumentovi v skupine.
- Zookeeper: Používa sa na koordináciu Kafka klastera (správa brokerov, tém, partitionov, posunutí skupín konzumentov). V novších verziách je rola Zookeeper čiastočne prevzatá vstavanou službou konsenzu KRaft.
Kafka zabezpečuje vysokú priepustnosť, škálovateľnosť a odolnosť voči chybám prostredníctvom replikácie partitionov medzi brokermi. Správy sú uložené na disku a sú dostupné pre konzumentov počas stanoveného obdobia.
Príklady použitia:
- Zber a spracovanie logov v reálnom čase.
- Streamingové spracovanie dát (cez Kafka Streams, KSQL).
- Oddelenie služieb (mikroservisná architektúra).
- Synchronizácia dát medzi systémami.