Kafka

Definicja w oczekiwaniu.

Apache Kafka to rozproszona platforma transmisji danych przeznaczona do budowania przewodów danych w czasie rzeczywistym i aplikacji transmisyjnych. Funkcjonuje jako wysoce skalowalny, tolerujący usterki i trwały system wysyłania wiadomości. Podstawową architekturą są tematy, które są kategoriami lub źródłami rekordów. Producenci publikują rekordy na tematy, a konsumenci subskrybują tematy do odczytu tych rekordów. Maklerzy Kafki, tworząc klastr, przechowują te rekordy trwale i służą im. Zapisy są zorganizowane na partycje w ramach tematów, umożliwiając równoległe przetwarzanie i wysoką wydajność. Każda partycja jest kolejnością, niezmienną sekwencją rekordów. Replikacja między brokerami zapewnia tolerancję błędów; jeśli broker

        graph LR
  Center["Kafka"]:::main
  Rel_ipfs["ipfs"]:::related -.-> Center
  click Rel_ipfs "/terms/ipfs"
  Rel_file_systems["file-systems"]:::related -.-> Center
  click Rel_file_systems "/terms/file-systems"
  Rel_distributed_ledger_technology_dlt["distributed-ledger-technology-dlt"]:::related -.-> Center
  click Rel_distributed_ledger_technology_dlt "/terms/distributed-ledger-technology-dlt"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 Sprawdzenie wiedzy

1 / 1

🧒 Wyjaśnij jak 5-latkowi

To jest jak superzorganizowana, super-szybka poczta dla cyfrowych informacji, gdzie wiadomości (zdarzenia) są wysyłane do konkretnych skrzynek pocztowych (tematów) i mogą być odebrane przez każdego, kto subskrybuje tę skrzynkę, bez potrzeby, aby nadawca wiedział, kim są odbiorcy.

🤓 Expert Deep Dive

Architektura Kafki opiera się na koncepcji rozprozonego dziennika zatwierdzeń. Tematy są partycjonowane, a każda partycja stanowi uporządkowaną sekwencję komunikatów. Brokerzy przechowują te partycje, a replikacja zapewnia odporność na błędy, z dynamiką lider-replika do zarządzania partycjami. Producenci zapisują komunikaty do lidera partycji, a repliki asynchronicznie replikują dane. Konsumenci utrzymują własne przesunięcie w każdej partycji, co pozwala im niezależnie śledzić postęp. Ta odseparowana natura umożliwia wysoką przepustowość i skalowalność. Kompromisy obejmują potencjalne ponowne porządkowanie komunikatów w obrębie partycji, jeśli konsumenci nie obchodzą się z tym ostrożnie, oraz złożoność zarządzania ponownym równoważeniem grup konsumentów podczas awarii lub zdarzeń skalowania. ZooKeeper był historycznie kluczowy dla zarządzania metadanymi, wyboru lidera i rejestracji brokerów, ale protokół KRaft ma na celu usunięcie tej zależności. Podatności mogą obejmować niezabezpieczoną komunikację między brokerami, niewystarczającą kontrolę dostępu prowadzącą do naruszeń danych oraz potencjalne ataki typu odmowa usługi skierowane na brokerów lub ZooKeeper.

📚 Źródła