Kafka z przypadkami użycia i przykładami w czasie rzeczywistym
Apache Kafka to rozproszona platforma przesyłania strumieniowego typu open source, która została zaprojektowana do obsługi dużych ilości danych w czasie rzeczywistym, co czyni ją idealną platformą do tworzenia potoków danych w czasie rzeczywistym, aplikacji do przesyłania strumieniowego i architektur sterowanych zdarzeniami.
Przypadków użycia:
Potoki danych w czasie rzeczywistym
Jednym z najczęstszych przypadków użycia Kafki jest budowanie potoków danych w czasie rzeczywistym. Na przykład Kafka może służyć do zbierania danych z czujników, plików dziennika, platform mediów społecznościowych i innych źródeł oraz przesyłania ich strumieniowo do hurtowni danych, platform uczenia maszynowego i innych miejsc docelowych.
Systemy przesyłania wiadomości
Kafka może być również używana jako system przesyłania wiadomości, umożliwiając szybkie i wydajne dostarczanie wiadomości między aplikacjami i usługami. Na przykład Kafka może być używana do obsługi aplikacji czatu, systemów poczty e-mail i innych systemów komunikacji w czasie rzeczywistym.
Przetwarzanie strumieniowe
Obsługa platform Kafki dla platform przetwarzania strumieniowego, takich jak Apache Flink i Apache Spark Streaming, umożliwia przetwarzanie i analizę danych w czasie rzeczywistym. Na przykład Kafka może służyć do budowania systemów wykrywania oszustw w czasie rzeczywistym, silników rekomendacji w czasie rzeczywistym i systemów analizy nastrojów w czasie rzeczywistym.
Architektura sterowana zdarzeniami
Wsparcie Kafki dla architektury sterowanej zdarzeniami sprawia, że jest to idealny wybór do tworzenia złożonych aplikacji sterowanych zdarzeniami. Dzięki Kafce zdarzenia mogą być tworzone, konsumowane i przetwarzane w czasie rzeczywistym. Na przykład Kafka może być używana do tworzenia architektur mikrousług sterowanych zdarzeniami, platform IoT i innych systemów sterowanych zdarzeniami.
Agregacja dzienników
Kafka może być również używana do agregacji dzienników, umożliwiając gromadzenie, przechowywanie i analizę dzienników z wielu źródeł. Na przykład Kafka może służyć do zbierania i analizowania dzienników z serwerów WWW, baz danych i innych systemów.
Kluczowe składniki Kafki

Temat Kafki:
- Temat to logiczna nazwa strumienia danych, w którym komunikaty są publikowane przez producentów iz którego komunikaty są konsumowane przez konsumentów.
- Temat Kafki jest podzielony na jedną lub więcej partycji, które są przechowywane w klastrze Kafka.
Broker to pojedyncza instancja serwera Kafka, która przechowuje jedną lub więcej partycji Kafki i zarządza nimi. Klaster Kafka składa się z jednego lub większej liczby brokerów, którzy współpracują ze sobą w celu zarządzania przechowywaniem i przetwarzaniem tematów Kafki.
Producent i konsument:
Producent tworzy dane do tematu kafki. Producenci mogą równolegle zapisywać dane do tematów, a Kafka zapewnia równomierny rozkład danych między partycjami.
Konsument zużywa dane z co najmniej jednego tematu Kafki. Konsumenci subskrybują tematy i odczytują dane z partycji. Kafka zapewnia, że tylko jeden konsument z grupy otrzymuje dane z partycji w danym momencie.
Przegrody:
- Tematy Kafki są podzielone na kilka partycji, które zawierają wiadomości w niezmiennej kolejności (niezmiennej).
- Każdy komunikat w partycji jest przypisywany i identyfikowany przez jego unikalne przesunięcie.
- Temat może mieć również wiele dzienników partycji. Dzięki temu wielu konsumentów może równolegle odczytywać temat.
Każdemu komunikatowi w partycjach przypisywany jest unikalny (na partycję) i sekwencyjny identyfikator zwany przesunięciem.
Grupa konsumencka:
Grupa konsumentów to zestaw jednego lub większej liczby konsumentów, którzy współpracują ze sobą w celu wykorzystania danych z tematów Kafki
Replikacja:
Replikacja to proces tworzenia wielu kopii danych. Replikacja zapewnia, że jeśli broker (węzeł) ulegnie awarii lub stanie się niedostępny, dane przechowywane w tym brokerze można odzyskać od innych brokerów, którzy mają kopię tych samych danych.
API Kafki
Kafka ma cztery podstawowe interfejsy API:
Producer API umożliwia aplikacji publikowanie strumienia rekordów w jednym lub kilku tematach Kafki.
Consumer API umożliwia aplikacji subskrybowanie jednego lub większej liczby tematów i przetwarzanie strumienia rekordów.
Streams API pozwala aplikacji działać jako procesor strumieni, zużywając strumień wejściowy z jednego lub więcej tematów i tworząc strumień wyjściowy do jednego lub więcej tematów wyjściowych, skutecznie przekształcając strumienie wejściowe w strumienie wyjściowe.
Łącznik API umożliwia budowanie i uruchamianie producentów lub konsumentów wielokrotnego użytku, którzy łączą tematy Kafki z istniejącymi aplikacjami lub systemami danych. Na przykład łącznik z relacyjną bazą danych może przechwytywać każdą zmianę w tabeli.
Przykłady ze świata rzeczywistego
- LinkedIn: LinkedIn używa platformy Kafka do przetwarzania i przesyłania strumieniowego danych dotyczących aktywności użytkowników w czasie rzeczywistym. Platforma generuje ponad 2 biliony wiadomości dziennie, a Kafka pomaga zarządzać tą ogromną ilością danych, umożliwiając przetwarzanie i analizę w czasie rzeczywistym.
- Uber: Uber używa Kafki do zarządzania strumieniami danych w czasie rzeczywistym. Kafka pomaga Uberowi zarządzać przepływem danych generowanych przez firmowe aplikacje dla kierowców i pasażerów, w tym danymi o lokalizacji w czasie rzeczywistym, danymi o przejazdach i danymi dotyczącymi płatności.
- Netflix: Netflix używa Kafki do zarządzania potokami danych i przesyłania strumieniowego danych między swoimi mikrousługami. Kafka pomaga firmie Netflix zarządzać przepływem danych między różnymi usługami, zapewniając każdej usłudze dostęp do danych potrzebnych do zapewnienia bezproblemowego przesyłania strumieniowego użytkownikom.
- Airbnb: Airbnb wykorzystuje Kafkę do zasilania swojej architektury sterowanej zdarzeniami. Kafka pomaga Airbnb zarządzać przepływem wydarzeń generowanych przez użytkowników i usługi, umożliwiając dostarczanie spersonalizowanych rekomendacji i bezproblemową obsługę.
- Twitter: Twitter używa Kafki do zarządzania danymi z mediów społecznościowych w czasie rzeczywistym. Kafka pomaga Twitterowi zarządzać ogromną ilością danych generowanych przez użytkowników, umożliwiając dostarczanie informacji i analiz w czasie rzeczywistym reklamodawcom i partnerom.
Dostęp oparty na rolach Spring Security z Spring Boot
Spring Security Uwierzytelnianie i autoryzacja za pomocą JWT
Wiosenny samouczek AOP
Samouczek rejestrowania Spring Boot
Scentralizowana konfiguracja w Spring Boot
Niestandardowe walidacje w Spring Boot
javinpaul Domenico Nicoli Trey Huffine Mehmet Arsl Mehmet Ozkaya Zespół edukacyjny