Кафка на практике. Потоковая обработка я
Товар
Характеристики
Описание
Kafka w praktyce. Przetwarzanie strumieniowe i potoki danych o dużej skali. Wydanie II
Gwen Shapira, Todd Palino, Rajini Sivaram, Krit Petty
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!
O autorach
Gwen Shapira pracuje w firmie Confluent, zarządza zespołem Kafki dla natywnej chmury. Odpowiada za wydajność, elastyczność i wielodzierżawność Kafki.
Todd Palino to główny inżynier kadrowy SRE w firmie LinkedIn, który jest odpowiedzialny za planowanie pojemności zasobów i wydajności.
Rajini Sivaram jest głównym inżynierem w firmie Confluent, projektującym i rozwijającym replikację międzyklastrową i funkcjonalności bezpieczeństwa dla Kafki.
Krit Petty jest menedżerem SRE do spraw Kafki w firmie LinkedIn.
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
Гарантии
Гарантии
Мы работаем по договору оферты и предоставляем все необходимые документы.
Лёгкий возврат
Если товар не подошёл или не соответсвует описанию, мы поможем вернуть его.
Безопасная оплата
Банковской картой, электронными деньгами, наличными в офисе или на расчётный счёт.