Kafka w praktyce. Przetwarzanie strumieniowe i potoki danych o dużej skali. Wydanie 2 - ebook
Kafka w praktyce. Przetwarzanie strumieniowe i potoki danych o dużej skali. Wydanie 2 - ebook
Każda aplikacja korporacyjna tworzy dane. Ich przenoszenie i przetwarzanie jest równie ważne jak same dane. Platforma Apache Kafka została zbudowana właśnie w tym celu: aby umożliwić płynną obsługę strumieni zdarzeń czasu rzeczywistego. Umożliwia to architektom nie tylko łączenie aplikacji z systemami danych, ale również budowanie niestandardowych aplikacji, które same w sobie wyzwalają strumienie danych. Okazuje się, że architektura skupiona wokół strumieni zdarzeń otwiera zupełnie nowy rozdział projektowania dużych systemów.
Dzięki temu praktycznemu przewodnikowi komfortowo rozpoczniesz pracę z platformą streamingową Apache Kafka. Poznasz najlepsze praktyki w zakresie jej wdrażania i konfiguracji, aby zapewnić sobie możliwość strumieniowego przetwarzania dużych ilości danych. Zaznajomisz się z AdminClient API Kafki, mechanizmem transakcji i z nowymi funkcjonalnościami zabezpieczeń. W książce znajdziesz szczegółowe instrukcje, w jaki sposób wdrażać klastry produkcyjne Kafki, pisać niezawodne mikrousługi oparte na zdarzeniach i budować skalowalne aplikacje przetwarzania strumieniowego. Opisano w niej też gwarancje niezawodności, kluczowe interfejsy API i szczegóły architektury, w tym protokół replikacji, kontroler i warstwę pamięci masowej.
Najciekawsze zagadnienia:
- wdrażanie i konfigurowanie Kafki w praktyce
- niezawodne dostarczanie danych
- budowanie potoków danych i aplikacji
- monitorowanie, dostrajanie i utrzymywanie działania Kafki w środowisku produkcyjnym
- wskaźniki pomiarów operacyjnych Kafki
- Kafka w systemach przetwarzania strumieniowego
Kafka: gwarancja niezawodności korporacyjnych aplikacji!
Spis treści
Przedmowa do wydania II
Przedmowa do wydania I
Wstęp
Rozdział 1. Poznaj Kafkę
- Publikuj-Subskrybuj
- Jak to się zaczyna?
- Indywidualne systemy kolejkowe
- Pojawienie się Kafki
- Komunikaty i partie
- Schematy
- Tematy i partycje
- Producenty i konsumenty
- Brokery i klastry
- Wiele klastrów
- Dlaczego Kafka?
- Wiele producentów
- Wiele konsumentów
- Retencja na dysku
- Skalowalność
- Wysoka wydajność
- Funkcjonalności platformy
- Ekosystem danych
- Przypadki użycia
- Pochodzenie Kafki
- Problem LinkedIna
- Narodziny Kafki
- Open source
- Zaangażowanie komercyjne
- Nazwa
- Pierwsze kroki z Kafką
Rozdział 2. Instalowanie Kafki
- Konfiguracja środowiska
- Wybór systemu operacyjnego
- Instalowanie Javy
- Instalowanie ZooKeepera
- Instalowanie brokera Kafki
- Konfiguracja brokera
- Ogólne parametry brokera
- Domyślne ustawienia tematu
- Wybór sprzętu
- Przepustowość dysku
- Pojemność dysku
- Pamięć
- Konfiguracja sieciowa
- Procesor
- Kafka w chmurze
- Microsoft Azure
- Amazon Web Services
- Konfiguracja klastrów Kafki
- Ile brokerów?
- Konfiguracja brokera
- Dostosowywanie systemu operacyjnego
- Zagadnienia produkcyjne
- Opcje mechanizmu odzyskiwania pamięci
- Układ centrum danych
- Współlokowanie aplikacji na ZooKeeperze
- Podsumowanie
Rozdział 3. Producenty Kafki - zapisywanie komunikatów w Kafce
- Omówienie producenta
- Konstruowanie producenta Kafki
- Wysyłanie komunikatów do Kafki
- Synchroniczne wysyłanie komunikatów
- Asynchroniczne wysyłanie komunikatów
- Konfiguracja producentów
- client.id
- acks
- Czas dostarczania komunikatów
- linger.ms
- buffer.memory
- compression.type
- batch.size
- max.in.flight.requests.per.connection
- max.request.size
- receive.buffer.bytes i send.buffer.bytes
- enable.idempotence
- Serializatory
- Serializatory niestandardowe
- Serializacja przy użyciu Apache Avro
- Używanie rekordów Avry z Kafką
- Partycje
- Wdrażanie niestandardowej strategii partycjonowania
- Nagłówki
- Przechwytywacze
- Kwoty i dławienie przepływności
- Podsumowanie
Rozdział 4. Konsumenty Kafki - odczytywanie danych z Kafki
- Koncepcje konsumenckie Kafki
- Konsumenty i grupy konsumentów
- Grupy konsumentów i równoważenie partycji
- Statyczne członkostwo w grupie
- Tworzenie konsumenta Kafki
- Subskrybowanie tematów
- Pętla odpytywania
- Bezpieczeństwo wątków
- Konfiguracja konsumentów
- fetch.min.bytes
- fetch.max.wait.ms
- fetch.max.bytes
- max.poll.records
- max.partition.fetch.bytes
- session.timeout.ms i heartbeat.interval.ms
- max.poll.interval.ms
- default.api.timeout.ms
- request.timeout.ms
- auto.offset.reset
- enable.auto.commit
- partition.assignment.strategy
- client.id
- client.rack
- group.instance.id
- receive.buffer.bytes i send.buffer.bytes
- offsets.retention.minutes
- Zatwierdzenia i przesunięcia
- Zatwierdzanie automatyczne
- Zatwierdzanie bieżących przesunięć
- Zatwierdzanie asynchroniczne
- Łączenie zatwierdzeń synchronicznych i asynchronicznych
- Zatwierdzanie określonego przesunięcia
- Nasłuchiwacze równoważenia obciążenia
- Konsumowanie rekordów z określonymi przesunięciami
- Wychodzenie z pętli
- Deserializatory
- Niestandardowe deserializatory
- Stosowanie deserializacji Avry z konsumentem Kafki
- Samodzielny konsument - dlaczego i jak korzystać z konsumenta bez grupy?
- Podsumowanie
Rozdział 5. Programowe zarządzanie Kafką
- Przegląd interfejsu AdminClient
- Asynchroniczny i ostatecznie spójny interfejs API
- Opcje
- Hierarchia płaska
- Dodatkowe uwagi
- Cykl życia AdminClient API - tworzenie, konfiguracja i zamykanie
- client.dns.lookup
- request.timeout.ms
- Podstawowe zarządzanie tematami
- Zarządzanie konfiguracją
- Zarządzanie grupą konsumentów
- Eksploracja grup konsumentów
- Modyfikowanie grup konsumentów
- Metadane klastra
- Zaawansowane operacje administracyjne
- Dodawanie partycji do tematu
- Usuwanie rekordów z tematu
- Wybór lidera
- Ponowne przypisywanie replik
- Testowanie
- Podsumowanie
Rozdział 6. Wewnętrzne mechanizmy działania Kafki
- Przynależność do klastra
- Kontroler
- KRaft - nowy kontroler Kafki oparty na algorytmie Raft
- Replikacja
- Przetwarzanie żądań
- Żądania produkcji
- Żądania pobierania
- Inne żądania
- Fizyczna pamięć masowa
- Warstwowy system pamięci masowej
- Przydzielanie partycji
- Zarządzanie plikami
- Format plików
- Indeksy
- Kompaktowanie
- Jak działa kompaktowanie?
- Usunięte zdarzenia
- Kiedy tematy są kompaktowane?
- Podsumowanie
Rozdział 7. Niezawodne dostarczanie danych
- Gwarancje niezawodności
- Replikacja
- Konfiguracja brokera
- Współczynnik replikacji
- Wybór nieczystego lidera
- Minimalna liczba replik zsynchronizowanych
- Utrzymywanie synchronizacji replik
- Utrwalanie na dysku
- Korzystanie z producentów w niezawodnym systemie
- Wysyłanie potwierdzeń
- Konfigurowanie prób ponawiania przez producenta
- Dodatkowa obsługa błędów
- Korzystanie z konsumentów w niezawodnym systemie
- Ważne właściwości konfiguracji konsumenta w celu niezawodnego przetwarzania
- Bezpośrednie zatwierdzanie przesunięć w konsumentach
- Walidacja niezawodności systemu
- Walidacja konfiguracji
- Walidacja aplikacji
- Monitorowanie niezawodności w środowisku produkcyjnym
- Podsumowanie
Rozdział 8. Semantyka "dokładnie raz"
- Producent idempotentny
- Jak działa idempotentny producent?
- Ograniczenia producenta idempotentnego
- Jak korzystać z producenta idempotentnego Kafki?
- Transakcje
- Przypadki użycia transakcji
- Jakie problemy rozwiązują transakcje?
- W jaki sposób transakcje gwarantują semantykę "dokładnie raz"?
- Jakich problemów nie rozwiązują transakcje?
- Jak korzystać z transakcji?
- Identyfikatory transakcyjne i odgradzanie
- Jak działają transakcje?
- Wydajność transakcji
- Podsumowanie
Rozdział 9. Budowanie potoków danych
- Zagadnienia związane z budowaniem potoków danych
- Terminowość
- Niezawodność
- Wysoka i zmienna przepustowość
- Format danych
- Transformacje
- Bezpieczeństwo
- Postępowanie w razie awarii
- Powiązania i zwinność
- Przypadki użycia dla frameworku Kafka Connect oraz dla producentów i konsumentów
- Kafka Connect
- Uruchamianie frameworku Kafka Connect
- Przykład konektora - źródło plików i ujście plików
- Przykład konektora - z MySQL-a do Elasticsearcha
- Pojedyncze transformacje komunikatów
- Jak działa framework Kafka Connect?
- Alternatywy dla frameworku Kafka Connect
- Frameworki pobierania dla innych magazynów danych
- Narzędzia ETL oparte na GUI
- Frameworki przetwarzania strumieniowego
- Podsumowanie
Rozdział 10. Mirroring danych między klastrami
- Przypadki użycia dla mirroringu między klastrami
- Architektury wieloklastrowe
- Realia komunikacji między centrami danych
- Architektura piasty i szprych
- Architektura aktywny-aktywny
- Architektura aktywny-pasywny
- Klastry rozciągnięte
- MirrorMaker platformy Apache Kafki
- Konfigurowanie MirrorMakera
- Topologia replikacji wieloklastrowej
- Zabezpieczanie MirrorMakera
- Wdrażanie MirrorMakera w środowisku produkcyjnym
- Regulowanie MirrorMakera
- Inne rozwiązania do mirroringu między klastrami
- uReplicator Ubera
- Brooklin LinkedIna
- Rozwiązania do mirroringu między centrami danych firmy Confluent
- Podsumowanie
Rozdział 11. Zabezpieczanie Kafki
- Zamykanie dostępu do Kafki
- Protokoły bezpieczeństwa
- Uwierzytelnianie
- SSL
- SASL
- Ponowne uwierzytelnianie
- Aktualizowanie zabezpieczeń bez przestojów
- Szyfrowanie
- Szyfrowanie kompleksowe
- Autoryzacja
- AclAuthorizer
- Dostosowywanie autoryzacji
- Kwestie bezpieczeństwa
- Audyt
- Zabezpieczanie ZooKeepera
- SASL
- SSL
- Autoryzacja
- Zabezpieczanie platformy
- Zabezpieczanie hasłem
- Podsumowanie
Rozdział 12. Administrowanie Kafką
- Operacje na tematach
- Tworzenie nowego tematu
- Wyświetlanie listy wszystkich tematów w klastrze
- Generowanie opisu tematu
- Dodawanie partycji
- Redukcja liczby partycji
- Usuwanie tematu
- Grupy konsumentów
- Wyświetlanie listy i generowanie opisu grup
- Usuwanie grup
- Zarządzanie przesunięciami
- Dynamiczne zmiany konfiguracji
- Nadpisywanie wartości domyślnych konfiguracji tematu
- Nadpisywanie wartości domyślnych konfiguracji klienta i użytkownika
- Nadpisywanie wartości domyślnych konfiguracji brokera
- Generowanie opisów nadpisanych konfiguracji
- Usuwanie nadpisanych konfiguracji
- Produkowanie i konsumowanie
- Producent konsolowy
- Konsument konsolowy
- Zarządzanie partycjami
- Wybór repliki preferowanej
- Zmienianie replik partycji
- Zrzucanie segmentów dziennika
- Weryfikacja replik
- Pozostałe narzędzia
- Niebezpieczne operacje
- Przenoszenie kontrolera klastra
- Rozwiązywanie problemów z usuwaniem tematów
- Ręczne usuwanie tematów
- Podsumowanie
Rozdział 13. Monitorowanie Kafki
- Podstawy monitorowania
- Gdzie są wskaźniki?
- Jakich wskaźników potrzebujesz?
- Kontrolowanie kondycji aplikacji
- SLO
- Definicje dotyczące poziomu usług
- Jakie wskaźniki nadają się na SLI?
- Stosowanie SLO w ostrzeganiu
- Wskaźniki brokerów Kafki
- Diagnozowanie problemów z klastrami
- Sztuka posługiwania się wskaźnikiem URP
- Wskaźniki brokera
- Wskaźniki tematów i partycji
- Monitorowanie JVM
- Monitorowanie systemu operacyjnego
- Rejestrowanie
- Monitorowanie klienta
- Wskaźniki producenta
- Wskaźniki konsumenta
- Kwoty
- Monitorowanie opóźnień
- Monitorowanie kompleksowe
- Podsumowanie
Rozdział 14. Przetwarzanie strumieniowe
- Czym jest przetwarzanie strumieniowe?
- Koncepcje przetwarzania strumieniowego
- Topologia
- Czas
- Stan
- Dualność strumieniowo-tablicowa
- Okna czasowe
- Gwarancje przetwarzania
- Wzorce projektowe przetwarzania strumieniowego
- Przetwarzanie pojedynczego zdarzenia
- Przetwarzanie ze stanem lokalnym
- Przetwarzanie wielofazowe (repartycjonowanie)
- Przetwarzanie z wyszukiwaniem zewnętrznym - łączenie strumieniowo-tablicowe
- Łączenie tablicowo-tablicowe
- Łączenie strumieniowe
- Zdarzenia poza kolejnością
- Ponowne przetwarzanie
- Zapytania interaktywne
- Kafka Streams na przykładach
- Licznik słów
- Statystyki giełdowe
- Wzbogacanie strumienia kliknięć
- Strumienie Kafki - przegląd architektury
- Budowanie topologii
- Optymalizacja topologii
- Testowanie topologii
- Skalowanie topologii
- Obsługa awarii
- Przypadki użycia dla przetwarzania strumieniowego
- Jak wybrać framework przetwarzania strumieniowego
- Podsumowanie
Dodatek A. Instalowanie Kafki w innych systemach operacyjnych
- Instalowanie w systemie Windows
- Korzystanie z windowsowego podsystemu dla Linuksa
- Korzystanie z natywnej Javy
- Instalowanie w systemie macOS
- Korzystanie z Homebrew
- Instalacja ręczna
Dodatek B. Dodatkowe narzędzia Kafki
- Kompleksowe platformy
- Wdrażanie klastra i zarządzanie nim
- Monitorowanie i eksploracja danych
- Biblioteki klienckie
- Przetwarzanie strumieniowe
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-9321-9 |
Rozmiar pliku: | 8,1 MB |