Kafka avancée et optimisation

Advanced skills for developing Kafka Stream Processing Applications
Sommaire

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.



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

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 re-partitionnement
  • Configurations de base

Modèle d’Architecture et de Parallélisation


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

L’API Processor


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

L’API DSL Streams et les Opérations Stateful


  • Aperçu de l’API
  • Les abstractions et operations
  • KStream / KGroupedStream
  • KTable / KGroupedTable
  • GlobalKTable
  • Les opérations « stateless »
  • Les fonctions d’agrégation
  • Comment combiner les API Streams DSL et Processor (Transformateur)
  • Streams DSL vs Processor

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

Comprendre les mécanismes de stockage d’états


  • Types et implémentations de Stores
  • Comprendre les chemins d'écriture/lecture des Stores
  • Activer la mémoire cache des Stores
  • Activer la journalisation des Stores
  • Standy replicas

RocksDB


  • Introduction à RocksDB
  • Concepts et architecture
  • Comment configurer et optimiser RocksDB

Gestion des erreurs


  • Comprendre les types d'erreurs
  • Comment gérer les exceptions de désérialisation ?
  • Comment gérer les exceptions de production ?
  • Comment gérer les exceptions d'une topology ?

Tester une application Kafka Streams


  • Comment tester une application Kafka Streams ?
  • Comment tester un Processor ?
  • Comment tester une Topology ?