Sobes.tech
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.