Apache Kafka - niezbędnik programisty

Tytuł: Apache Kafka - niezbędnik programisty
Kod: kafka-java
Kategoria: Architektura Java
Forma: 50% wykłady / 50% warsztaty
Czas trwania: 4 dni
Zapisy: Indywidualne zamówienie i dopasowanie dla grupy.
Logistyka: W siedzibie klienta lub w innym dowolnym miejscu.

W trakcie tego praktycznego warsztatu zapoznamy się z narzędziami i bibliotekami, które pozwolą programistom w efektywny sposób implementować oraz testować systemy wykorzystujące klaster Kafka.

Przedstawione zostaną innowacyjne sposoby implementacji, w których Kafka to nie tylko brokera wymiany wiadomości, to też narzędzie do trwałego zapisywania i odczytywania danych, ich agregacji oraz strumieniowania. Omówimy sposoby integracji danych z klastra z popularnymi bazami danych oraz sposoby łączenia ze sobą strumieni danych.

W części warsztatowej położymy nacisk na testowanie automatyczne wytworzonego kodu, zgodność z wzorcami projektowymi oraz dobrymi praktykami wytwarzania oprogramowania.

Szkolenie to niezbędnik programistyczny dla każdego dewelopera rozpoczynającego swoją przygodę z implementacją aplikacji posługujących się Kafka. Jest to zbiór najbardziej efektywnych praktyk zebranych na bazie doświadczenia ponad sześciu lat pracy z systemami wykorzystującymi Apache Kafka. Zadania programistyczne są opcjonalne i przeprowadzane w języku Java

Program Szkolenia

Program jest ramą w jakiej możemy się poruszać merytorycznie - program dla konkretnego szkolenia dedykowanego ustalamy z grupą na podstawie analizy przed-szkoleniowej.

  1. Architektura Apache Kafka
    1. Wprowadzenie do komunikacji asynchronicznej
      1. Komunikacja w monolicie vs mikrousługi
      2. Przykłady zastosowań komunikacji asynchronicznej
      3. Systemy oparte o zdarzenia
    2. Architektura Apache Kafka
      1. Wprowadzenie do podstawowych pojęć
        1. Topics, Partitions, Offsets
        2. Brokers
        3. Topics Replication
        4. Producers
        5. Consumers, Consumers Groups
        6. Offsets
        7. Acks
      2. Kolejność wiadomości
      3. Replikacja
      4. Jak dobrać odpowiednią ilość partycji?
      5. Poziomy potwierdzenia dostarczenia wiadomości
      6. Co zapewnia Apache Kafka
      7. Skąd bierze się wydajność?
    3. Architektura Confluent Platform
      1. Kafka Streams
      2. Kafka Connect
      3. KSQL
      4. Rest Proxy
      5. Schema Registry
    4. Kafka CLI
      1. Zarządzanie Topic’ami
      2. Wysyłanie wiadomości
      3. Odbieranie wiadomości
      4. Monitorowanie i zarządzanie Consumer Groups
      5. Zarządzanie Offset’ami
    5. Natywny klient Java
      1. Kafka Producer
        1. Implementacja niestandardowego partycjonowania
        2. Serializacja wiadomości
        3. Idempotentność
      2. Kafka Consumer
        1. Delivery semantics
        2. Deserializacja wiadomości
        3. Partition assignment strategies
        4. Static membership
        5. Implementacja cache w pamięci opartego o Kafka Consumer
      3. Transakcje
        1. Jak działają transakcje?
        2. Jak dobrać parametr transaction.id?
        3. Do czego wykorzystać transakcje na Apache Kafka?
        4. Implementacja aplikacji biznesowej przetwarzającej wiadomości w sposób transakcyjny
      4. Jak skonfigurować system do bezstratnego dostarczania wiadomości?
  2. Kafka Streams
    1. Koncepcja zastosowania w ekosystemie Confluent
    2. Architektura aplikacji opartych o Kafka Streams
      1. Dualizm strumień-tablica
      2. Topiki kompaktowe
      3. Lokalna baza danych RocksDB
      4. Changelog topic
      5. Repartition topic
    3. Analiza topologii strumieni
    4. Reset tool
    5. Operacje bezstanowe
    6. Operacje stanowe
      1. Zapis stanu w KTable
      2. Zapis stanu w GlobalKTable
      3. Agregowanie danych
      4. Łączenie strumieni
      5. Agregacja danych w oknach czasowych
    7. Odczytywanie lokalnego stanu systemu
      1. Interactive queries
      2. ReadOnlyKeyValueStore
      3. ReadOnlyWindowStore
      4. Standby replicas
    8. Transformers
      1. Przetwarzanie zgodnie z podejściem Stateful Record-By-Record
    9. Exactly once processing
    10. Testowanie aplikacji opartych o Kafka Streams
      1. Testy jednostkowe z wykorzystaniem kafka-streams-test-utils
      2. Testy integracyjne z wykorzystaniem Testcontainers
    11. Implementacja wzorców
      1. Saga
      2. Read-Process-Write
      3. Sortowanie i deduplikacja zdarzeń
  3. Wsparcie dla Apache Kafka w Spring Boot
    1. Podstawowe operacje
      1. Wysyłka wiadomości
        1. KafkaTemplate vs. KafkaProducer
        2. RoutingKafkaTemplate
        3. ReplyingKafkaTemplate
      2. Odbiór wiadomości
        1. Wątki
        2. Walidacja wiadomości
        3. Zarządzanie potwierdzeniami
        4. Ponawianie
        5. Wysyłka odpowiedzi
      3. Transakcje
        1. Publikowanie transakcyjne
        2. Transakcje inicjowane przez odczyt wiadomości
        3. Zarządzanie transaction.id przez Spring
    2. Prawidłowa konfiguracja aplikacji
      1. Zarządzanie błędami
      2. Serializacja i deserializacja
      3. Nagłówki
    3. Testowanie
      1. Przegląd bibliotek do testowania asynchronicznego
        1. JUnit - Awaitility
        2. Spock - PollingConditions
      2. Wykorzystanie mechanizmów Spring w testach
      3. Uruchamianie Kafka do testów z wykorzystaniem spring-kafka-test
      4. Uruchamianie Kafka do testów z wykorzystaniem Testcontainers
    4. Implementacja aplikacji biznesowej z wykorzystaniem Spring Boot, Apache Kafka i relacyjnej bazy danych
      1. Modelowanie procesów biznesowych w podejściu asynchronicznym
      2. Implementacja mechanizmów zapewniających idempotentność
      3. Wpływ asynchroniczności na modelowanie REST API
      4. Różne poziomy spójności
      5. Implementacja wzorca Outbox


Pobierz program w formacie PDF

Trenerzy

Poznaj ekspertów, którzy mogą poprowadzić Twoje szkolenie.

Materiały związane ze szkoleniem

Idea renesansowej pracowni - Bottegi zakłada nieustanną pracę jej członków i dzielenie się jej wynikami.

Zamów szkolenie

Imię i nazwisko:
Firma:
E-mail:
Nr tel:
Temat:
Wiadomość:

Jeżeli preferujesz osobisty kontakt to zawsze możesz zadzwonić.

Iwona Sobótka

Koordynatorka szkoleń


Twoje dane osobowe przetwarzamy, aby udzielić odpowiedzi na Twoje pytanie. Administratorem Twoich danych osobowych jest Bottega It Minds Sławomir Sobótka. Przysługuje Ci prawo wniesienia sprzeciwu wobec przetwarzania, prawo dostępu do danych, prawo żądania ich sprostowania, usunięcia lub ograniczenia ich przetwarzania. Szczegółowe informacje dotyczące przetwarzania Twoich danych osobowych znajdują się TUTAJ.