Scopo del corso è fornire le conoscenze necessarie per sostenere l’esame “Confluent Certified Developer for Apache Kafka”:
- Architettura Confluent
- Sviluppo in Java per Kafka
Si evidenzia che il corso è adatto anche a chi semplicemente desidera avvicinarsi al mondo Kafka e alle relative integrazioni/sviluppi tramite linguaggio Java.
Al termine del corso gli studenti saranno in grado di:
- Conoscere l’architettura Kafka.
- Configurare e ottimizzare i sistemi operativi e kafka stesso al fine di ottenere il massimo delle prestazioni
- Sviluppare Consumer, Producer e altro in ambiente Java per l’integrazione con Kafka.
Il corso è rivolto alle seguenti figure professionali:
Per partecipare con profitto a questo corso è necessario che gli allievi possiedano i seguenti prerequisiti:
- Conoscenza del linguaggio Java
Unit 1: Introduzione all’ecosistema software Kafka
- Il mondo Apache
- Concetti Base della Messagistica
- Principali modelli di Messagistica
- Protocolli
- Apache Kafka
- Campi di applicazione
- Kafka Connect
- Schema Registry
- REST Proxy
- Ksql
- Zookeeper
- Introduzione alle Kafka Java Client APIs
- Producer API
- Consumer API
- Streams API
- Connect API
- Installazione Ambiente di sviluppo
- Installazione di Zookepeer
- Installazione di Kafka
- Installazione di altri moduli Confluent
- Configurazione Java
- IDE di sviluppo Java
Unit 2: Kafka
- Kafka’s Command Line Tools
- Publish/Subscribe Messaging e Streaming
- Apache Kafka APIs, configuration and metrics
- Kafka Message & Message metadata
- Message “key selection” (scelte e fattori)
- Message schema management
- Osservazioni Generali
- Avro
- Topics, Partitions e Segments
- Log Replication & Log Compaction
- Consumers e Producers
- Consumer Groups
- Brokers & Cluster
- Il Flow completo di Kafka
- Approfondimenti
- Disk-Based Retention
- Scalabilità
- Alte performance
- Security
- Hardware
- Disk Throughput & Capacity
- RAM
- Rete e Schede di Rete
- CPU
- Zookeeper
- Ruolo di Zookeeper
- I metadati
- Cluster Zookeeper
Unit 3: Integrazione e Sviluppo Software su Kafka
- Accedere a Kafka a livello di codice
- Le APIs Kafka
- Sviluppare un Producer
- Sviluppo di un Producer
- Configurazione e ottimizzazione del Producer
- Sviluppare un Consumer
- Sviluppo di un Consumer
- Configurazione e ottimizzazione del Consumer
- Sviluppo Avanzato
- Dimensioni e durata dei messaggi
- Abilitazione di Exactly Once Semantics (EOS)
- Uso degli offset
- Specificare gli Offsets
- Committare manualmente gli Offsets
- Consumer Liveness & Rebalancing
- Schema Management In Kafka
- Data Serialization
- Introduzione ad Avro e agli Gli Avro Records
- Avro Schemas & Schema Evolution
- Usare lo Schema Registry
- Tuning
Unit 4: Kafka Avanzato
- Data Pipelines con Kafka Connect
- Kafka Connect
- Tipi di Connectors
- Kafka Connect Implementation
- Standalone & Distributed Modes
- Configurazione dei Connectors
- Stream Processing con Kafka Streams
- Kafka Streams API
- Kafka Streams Concepts
- Creare una Kafka Streams Application
- Kafka Streams by Example
- Managing Kafka Streams Processing
- Stream Processing con Confluent KSQL
- KSQL for Apache Kafka
- Scrivere KSQL Queries
- Avanzate:
- Risoluzione problemi del Client
- Debugging
- Performance, throughput, latency, scaling
- Ordine dei messaggi e garanzie di consegna
- Serialization/Deserialization
- Producer partition selection
- Consumer offset management
- Consumer Groups, partition assignments, partition rebalances
- Data retention strategies and implications
- Topic co-partitioning
- Data Protection
Unit 5: LAB: Esercitazioni.