---
description: >-
  Apache Kafka – broker wiadomości dostępny jako otwarte oprogramowanie.  Cel
  przedsięwzięcia to umożliwienie obsługi danych czasu rzeczywistego
  pochodzących z wielu węzłów.
---

# KAFKA

## Czym jest Kafka?

Apache Kafka to rozproszony system przetwarzania strumieniowego, który umożliwia wysyłanie, przechowywanie i przetwarzanie dużej ilości danych w czasie rzeczywistym.

## Dlaczego warto używać Kafki?

* Kafka zapewnia wysoką przepustowość i niskie opóźnienia, co jest kluczowe dla przetwarzania strumieniowego.
* Elastyczność i skalowalność Kafka umożliwiają obsługę dużych ilości danych i dynamiczną rozbudowę klastra.
* Kafka jest odporna na awarie, dzięki replikacji danych i automatycznemu przydzielaniu partycji.

## Przypadki użycia

* Przetwarzanie strumieniowe
* Analiza w czasie rzeczywistym
* Logi zdarzeń i audytu
* Integracja systemów
* Kolejkowanie i przesyłanie wiadomości
* Przechowywanie danych

## Broker Kafki

Broker Kafka to pojedynczy serwer, który obsługuje przesyłanie, przechowywanie i przetwarzanie danych w klastrze Kafka. Pełni rolę pośrednika między producentami a konsumentami, umożliwiając przesyłanie wiadomości w systemie Kafka. Broker przechowuje partycje tematów i obsługuje zapisywanie, odczytywanie i replikację danych. Klastry Kafka mogą składać się z wielu brokerów, które można dodawać lub usuwać w celu dostosowania pojemności i wydajności systemu. Zarządzanie brokerami obejmuje ich konfigurację, monitorowanie i skalowanie w zależności od potrzeb.



| Wersja CDC | Wersja Kafki | Wersja Confluent  |
| ---------- | ------------ | ----------------- |
| 1.0.0      | 3.0.0        | 7.1.1             |
|            |              |                   |
|            |              |                   |

### Parametry konfiguracyjne

* `broker.id`: Unikalny identyfikator brokera w klastrze Kafka.
* `listeners`: Adresy i porty, na których broker nasłuchuje połączeń od producentów i konsumentów.
* `advertised.listeners`: Zewnętrzne adresy i porty, które są udostępniane producentom i konsumentom do komunikacji z brokerem.
* `log.dirs`: Ścieżka do katalogu, w którym broker przechowuje swoje dane, w tym partycje tematów.
* `num.partitions`: Domyślna liczba partycji tworzonych dla nowego tematu.
* `default.replication.factor`: Domyślna liczba replik partycji.
* `offsets.topic.replication.factor`: Liczba replik dla tematu offsets, który przechowuje informacje o przesunięciach offsetów konsumentów.
* `transaction.state.log.replication.factor`: Liczba replik dla tematu transaction state log, który przechowuje informacje o stanach transakcji.
* `min.insync.replicas`: Minimalna liczba replik, które muszą potwierdzić zapis, aby uznano go za zakończony sukcesem.
* `auto.create.topics.enable`: Określa, czy automatyczne tworzenie tematów jest włączone.

{% hint style="info" %}
Każdy topic posiada jedynie jedną partycje w celu zachowania kolejności przetwarzania eventów.&#x20;
{% endhint %}



### Potencjalne rozwój.

Przejście na wersje Kafka Kraft ( bez Zookeepera)&#x20;

