Co to jest Kafka?

Ten asynchroniczny interfejs API jest implementowany przy użyciu protokołu Apache Kafka. Jest to platforma publikowania i subskrybowania zdarzeń, której celem jest uzyskanie odpornej na błędy platformy o wysokiej przepustowości i małym opóźnieniu pozwalającej na obsługę kanałów informacyjnych w czasie rzeczywistym.

Produkt Kafka działa jako klaster z jednym lub z większą liczby serwerów (brokerów Kafka). Obciążenie jest równoważone w klastrze dzięki rozdzieleniu go między serwery.

Kluczowe pojęcia

Temat

Strumień komunikatów jest przechowywany w kategoriach nazywanych tematami. Tematy są reprezentowane jako kanały w dokumencie AsyncAPI. Każdy temat składa się z jednej lub większej liczby partycji. Każda partycja jest uporządkowaną listą komunikatów. Komunikaty w partycji otrzymują monotonicznie zwiększającą się liczbę zwaną przesunięciem.

Komunikat/rekord

Jednostka danych w produkcie Kafka, która składa się z dwóch części: nagłówków i wartości. Nagłówki są powszechnie używane dla danych o komunikacie, a wartość jest treścią komunikatu.

Producent

Proces publikujący strumienie komunikatów w tematach produktu Kafka. Producent może publikować w jednym lub większej liczbie tematów i opcjonalnie może wybrać partycję, w której przechowywane są dane.

Konsument

Proces, który konsumuje komunikaty pochodzące z tematów produktu Kafka i przetwarza kanał informacyjny komunikatów. Konsument może korzystać z jednego lub większej liczby tematów lub partycji.

Grupa konsumentów

Nazwana grupa jednego lub większej liczby konsumentów, które wspólnie konsumują komunikaty pochodzące z zestawu tematów. Każdy konsument w grupie odczytuje komunikaty z konkretnych partycji, do których jest przypisany. Każda partycja jest przypisana tylko do jednego konsumenta w grupie. Przypisanie jest kontrolowane przez właściwości konsumenta 'client.id' oraz 'group.id'.

Korzystanie z tego interfejsu API

Aby nawiązać połączenie i zasubskrybować, wymagany jest klient produktu Kafka. Biblioteki klienta produktu Kafka są dostępne dla różnych języków programowania, a przykładowy kod dla każdego kanału jest punktem wyjścia do używania klienta Java Kafka do korzystania ze zdarzeń przy użyciu konsumenta produktu Kafka.