KAFKA

Învață Apache Kafka: comenzi explicate cu exemple

16 comenzi 7 categorii

Apache Kafka este standardul de facto la nivel mondial pentru Distributed Event Streaming, gestionând mii de miliarde de evenimente pe zi în infrastructurile marilor companii de tehnologie (LinkedIn, Netflix, Uber, bănci internaționale). Conceput inițial ca o coadă de mesaje ultra-rapidă, Kafka a evoluat într-o platformă distribuită completă de procesare a fluxurilor de date în timp real.

Spre deosebire de cozile de mesaje tradiționale (care șterg mesajul imediat ce a fost citit de un consumator), Kafka funcționează ca un jurnal distribuit de comitere atașat continuu (Distributed Append-Only Commit Log). Datele sunt persistate pe disc în segmente binare secvențiale extrem de rapide, permițând ca sute de consumatori independenți să citească același flux la viteze diferite, să reia procesarea istorică de la orice punct din timp (*replayability*) și să garanteze procesare de tip *Exactly-Once*.

Arhitectura Internă a unui Topic Kafka cu Partiții
# Producători (Producers)
#        │
#        ▼
# ┌─────────────────────────────────────────────────────────────┐
# │ Topic: 'orders.payments'                                    │
# │                                                             │
# │  Partition 0: [offset 0][offset 1][offset 2][offset 3]...   │
# │  Partition 1: [offset 0][offset 1][offset 2]...             │
# │  Partition 2: [offset 0][offset 1][offset 2][offset 3]...   │
# └────────────────────────────┬────────────────────────────────┘
#                              │
#                              ▼
# ┌─────────────────────────────────────────────────────────────┐
# │ Consumer Group ('billing-service')                          │
# │  ├── Consumer Instance A ──► Citește exclusiv Partition 0   │
# │  ├── Consumer Instance B ──► Citește exclusiv Partition 1   │
# │  └── Consumer Instance C ──► Citește exclusiv Partition 2   │
# └─────────────────────────────────────────────────────────────┘

Pilonii Tehnologici ai Apache Kafka

Concept Fundamental Mecanism Tehnic Rol în Sisteme Distribuite
Append-Only Log Scrieri exclusiv secvențiale pe disc optimizate cu sendfile zero-copy OS cache. Latențe de sub 5 milisecunde și debite de peste 1 milion de mesaje/secundă per nod.
Consensul KRaft Protocol integrat de consens Raft care elimină definitiv dependența de Apache ZooKeeper. Clustere mai stabile, pornire instantanee și suport pentru milioane de partiții per cluster.
Consumer Groups Grupuri logice de consumatori ce își împart automat partițiile unui topic (Rebalance). Scalare orizontală automată a procesării prin simpla pornire a unor instanțe noi de container.
Kafka Streams Bibliotecă nativă de stream processing cu suport pentru tabele (KTable) și geamuri de timp. Procesare continuă de date (transformări, uniri de fluxuri) fără framework-uri greoaie externe.
Comenzi CLI Esențiale în Kafka Modern (KRaft)
# 1. Crearea unui topic cu 3 partiții și factor de replicare 2:
kafka-topics.sh --bootstrap-server localhost:9092 \
  --create --topic customer-events \
  --partitions 3 \
  --replication-factor 2

# 2. Pornirea unui Producător consolă:
kafka-console-producer.sh --bootstrap-server localhost:9092 \
  --topic customer-events \
  --property "parse.key=true" \
  --property "key.separator=:"

# 3. Consumarea evenimentelor de la început (from-beginning):
kafka-console-consumer.sh --bootstrap-server localhost:9092 \
  --topic customer-events \
  --from-beginning \
  --group analytics-workers

Arhitectură & Partiții 1 comandă

cli 7 comenzi

Producători & Consumatori 1 comandă

Clustering & KRaft 1 comandă

Kafka Streams & Real-time 1 comandă

client 3 comenzi

streams 2 comenzi