E-book details

Kafka w praktyce. Przetwarzanie strumieniowe i potoki danych o dużej skali. Wydanie II

Kafka w praktyce. Przetwarzanie strumieniowe i potoki danych o dużej skali. Wydanie II

Gwen Shapira, Todd Palino, Rajini Sivaram, Krit Petty

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!

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
  • Title: Kafka w praktyce. Przetwarzanie strumieniowe i potoki danych o dużej skali. Wydanie II
  • Author: Gwen Shapira, Todd Palino, Rajini Sivaram, Krit Petty
  • Original title: Kafka: The Definitive Guide: Real-Time Data and Stream Processing at Scale, 2nd Edition
  • Translation: Lech Lachowski
  • ISBN: 978-83-283-9321-9, 9788328393219
  • Date of issue: 2022-10-25
  • Format: Ebook
  • Item ID: kafpra
  • Publisher: Helion