Kafka Architetture e Coding v3
Obiettivi del Corso
Approfondire le funzionalità e l'utilizzo di Apache Kafka.
Esplorare le modalità di integrazione con Java e architetture a microservizi.
Comprendere le best practice per il monitoring e l'operatività di sistemi Kafka.
Programma del Corso
Introduzione a Kafka
Concetti fondamentali: Topic, Broker, Partizioni, Replication, Consumer Group, Cluster, Cluster Multipli.
Delivery Semantics.
Resilienza e gestione degli errori.
In Sync Replicas (ISR).
Log Compaction.
Architetture Event Driven
Utilizzo di Kafka per migliorare la robustezza e le prestazioni dell'architettura.
Introduzione a pattern fondamentali
Saga Pattern: coordinamento di transazioni distribuite.
Sistemi di Compensazione: gestione di errori e rollback in scenari complessi.
Fan-Out ed Elaborazioni Parallele: distribuzione di eventi a più consumatori per elaborazioni simultanee.
CQRS/ES (Command Query Responsibility Segregation/Event Sourcing): separazione tra comandi e query con gestione eventi.
Installazione di Kafka
Configurazione e utilizzo tramite CLI.
Installazione e gestione con Docker.
Kafka Producer
Invio di messaggi e utilizzo di serializzatori.
Kafka Consumers
Sottoscrizione ai topic.
Gestione di commit e offset.
Utilizzo di deserializzatori.
Meccanismi interni di Kafka
Elaborazione delle richieste.
Storage e configurazioni per alta affidabilità.
Integrazione Kafka con Java
Integrazione di Kafka in applicazioni basate su Java.
Kafka in Architetture a Microservizi
Utilizzo con Spring Boot, Spring Cloud e Spring Streams.
Esempio pratico di implementazione di un service bus Kafka in un'architettura a microservizi.
Monitoring e Operations di Kafka
Introduzione alla distribuzione Confluent e ai suoi servizi principali.
Confluent Control Center: monitoraggio delle prestazioni e gestione semplificata di cluster Kafka.
Servizi integrati per
Monitoraggio di topic, producer e consumer.
Visualizzazione dei flussi di dati in tempo reale.
Configurazione e gestione semplificata dei cluster.
Aggiornare Kafka con KRaft
Introduzione a KRaft (Kafka Raft) e i cambiamenti rispetto a ZooKeeper.
Vantaggi principali
Semplificazione dell'architettura eliminando la dipendenza da ZooKeeper.
Miglioramenti nella scalabilità e nella gestione dei metadati.
Maggiore resilienza grazie al protocollo Raft.
Procedura per la migrazione a KRaft.
Best practice e novità introdotte nelle ultime versioni di Kafka.