Uživatelské nástroje

Nástroje pro tento web


apache_kafka

Apache Kafka

Apache Kafka je open-source platforma pro distribuovaný přenos a zpracování datových proudů (streams). Na rozdíl od tradičních systémů pro zasílání zpráv (Message Brokers) funguje Kafka spíše jako distribuovaný transakční protokol (log), který umožňuje data ukládat a zpětně procházet.

1. Základní koncepty

Architektura Kafky stojí na několika klíčových prvcích:

  • Producer (Producent): Aplikace, která posílá (publikuje) data do Kafky.
  • Consumer (Konzument): Aplikace, která data čte a zpracovává.
  • Topic (Téma): Kategorie nebo název kanálu, do kterého jsou data ukládána. Témata jsou rozdělena na Partitions (partice) pro zajištění paralelismu a škálovatelnosti.
  • Broker: Server v clusteru Kafky, který ukládá data a vyřizuje požadavky klientů.

2. Proč je Kafka unikátní?

Na rozdíl od starších systémů (jako RabbitMQ), kde se zpráva po přečtení smaže, Kafka funguje jinak:

  • Persistence: Zprávy jsou ukládány na disk a uchovávány po nastavenou dobu (např. 7 dní) nebo do dosažení určité velikosti. To umožňuje konzumentům číst data i zpětně.
  • Vysoká propustnost: Kafka dokáže zpracovat miliony zpráv za sekundu díky efektivnímu zápisu na disk a minimální režii.
  • Škálovatelnost: Přidáním dalších brokerů do clusteru lze prakticky neomezeně zvyšovat kapacitu systému.
  • Záruka pořadí: V rámci jedné partice je zaručeno, že zprávy budou přečteny přesně v tom pořadí, v jakém byly zapsány.

3. Ekosystém Kafky

Kafka není jen „potrubí“ na data, ale celý ekosystém nástrojů:

  • Kafka Connect: Nástroj pro snadné propojení Kafky s databázemi (např. SQL), indexy (Elasticsearch) nebo cloudovými úložišti bez psaní kódu.
  • Kafka Streams: Knihovna pro budování aplikací, které transformují, agregují a analyzují data přímo „za letu“ uvnitř Kafky.
  • ksqlDB: Databáze pro streamy, která umožňuje psát dotazy nad živými daty pomocí jazyka podobného SQL.

4. Využití v praxi

  • Sledování aktivit (Activity Tracking): Logování každého kliknutí na webu pro real-time analýzu.
  • Metriky a monitoring: Shromažďování dat z tisíců serverů pro sledování jejich stavu.
  • Log Aggregation: Centrální sběr logů z mnoha mikroslužeb.
  • Finanční transakce: Zpracování plateb a detekce podvodů v reálném čase.

5. Porovnání: Kafka vs. Tradiční Message Broker

Vlastnost Apache Kafka RabbitMQ / ActiveMQ
Model Pull (konzument si říká o data) Push (server posílá data)
Ukládání dat Persistentní log (zůstávají v systému) Dočasná fronta (smažou se po doručení)
Škálovatelnost Velmi vysoká (distribuovaná) Omezená (hůře se škáluje horizontálně)
Použití Streamování, Big Data, Analýza Komunikace mezi službami, úkoly na pozadí

Související články:

Tagy: it big-data kafka streaming backend architecture infrastructure

apache_kafka.txt · Poslední úprava: autor: admin