StreamThoughts
new

Kafka Streams: Compétences avancées pour le développement d'applications de streaming

Prix : 1750 € HT - par participant

Pour plus d'informations sur cette formation, veuillez contacter :
training@streamthoughts.io

Description

Durant ces trois jours de travaux pratiques, dirigés par un instructeur, vous apprendrez à utiliser les API avancées de Kafka Streams, à monitorer et à administrer vos applications en production. Vous discuterez aussi des meilleures pratiques de développement.

Objectifs du cours

Vous apprendrez à utiliser les APIs DSL et Processor de Kafka Streams pour créer des topologies de traitement de flux de données. Vous apprendrez à implémenter des applications stateful à travers les mécanismes de Stores. Vous discuterez aussi des meilleures pratiques de développement, de monitoring et de production de vos applications Kafka Streams.

Pédagogie

50% théorie, 50% pratique

Qui Peut Participer ?

Ce cours est destiné aux Développeurs d'applications, aux Architectes et aux Data Ingénieurs qui ont besoin de créer et de déployer des applications de streaming pour enrichir, transformer, joindre et interroger des données diffusées, en temps réel, à travers Apache Kafka.

Durée

3 Jours

Pré-requis

Les participants doivent être familiarisés avec le développement en Java. Une connaissance des concepts de base d’Apache Kafka est fortement recommandée mais pas obligatoire.

Programme

1 ) L’essentiel de Kafka

Les composants d’un cluster Apache Kafka
  • Broker, Producer, Consumer
  • Message, Topic, Partitions
  • Zookeeper
  • OS Page-cache
Les groupes de consommateurs
Réplication et tolérance à la panne
  • Les rôles des brokers (Leader, Follower, Controller)
  • In-Sync Replicas
  • Commit
  • Fiabilité et garanties de production de messages
Stratégies de rétention des messages (deleted, compacted)
Transactions

2) Introduction à Kafka Streams

Pourquoi Kafka Streams ?
Les cas d’usages et caractéristiques clés
Les niveaux d’abstraction
Les Concepts de Streams et de Tables
Construire une topologie simple via l’API Streams DSL
L’API Processor
Sous-topologies et topics de repartitionnement
Configurations de base

3) Modèle d’Architecture et de Parallélisation

Streams Tasks
Streams Threads
États d’exécution
Modèle de consommation et de traitement
Assignation des partitions

4 ) L’API Processor

Aperçu de l’API
Accès au contexte d’un processeur
Tranférer des messages entre les processeurs
Construire une topologie
Manipuler des états locaux
Ponctuer des opérations (API Punctuator)
Les opérations de repartitionnement

5 ) L’API DSL Streams et Les Opérations Stateful

Aperçu de l’API
Les abstractions & Operations
  • KStream / KGroupedStream
  • KTable / KGroupedTable
  • GlobalKTable
Les opérations sans états
Les fonctions d’agrégation
Comment combiner les APIs Streams DSL et Processor (Transformateur)
Streams DSL vs Processor

6 ) Les opérations fenêtrées et les sémantiques des jointures

Les notions de temps
Les opérations fenêtrées
Manipulation du Temps (TimestampExtractor)
Gestion des messages en retard
Suppression des agrégats intermédiaires
Les jointures - Sémantiques et opérations

7 ) Comprendre les mécanismes de stockage d’états

Implémentations et rôle des Stores
Comprendre le chemin de lecture d’un KeyValueStore
Comprendre le chemin d’écriture d’un KeyValueStore
Les réplicas passifs et la récupération d’états

8 ) RocksDB

Introduction à RocksDB
Concepts et architecture
Gestion de la mémoire
Métriques et configurations disponibles

9 ) Gestion des erreurs

Les types d’erreurs
Comment gérer les exceptions de désérialisation
Comment gérer les exceptions de production de messages
Quelles stratégies de gestion des erreurs choisir ?

10 ) Tester une application Kafka Streams

Tester une topologie en utilisant l’API TestTopologyDriver
Comment écrire des tests d’intégration avec Kafka Embedded et Dockers

11 ) Concepts et fonctionnalités avancés

La sémantique “Exactly-Onces”
Optimisation d’une topologie
Nommer les opérations d’une topologie
Le rejeux des données
Les “Interactive Queries”

12 ) Gestion d’une application Kafka Streams en production

13 ) Recommandations infrastructure

14 ) Conclusion