Die Messaging Plattform Kafka wurde für einen hohen Durchsatz, geringe Verzögerungen und größte Datenmengen ursprünglich beim Social Media Dienst LinkedIn entwickelt. Die Anwendungsgebiete von Kafka sind Messaging, Storage und Streaming. Kafka bietet Lösungen für Probleme konventioneller Messaging Middleware wie zum Beispiel das erneute Lesen bereits empfanger Nachrichten. Für die Realisierung von Microservices bietet sich Kafka als leistungsfähiger Event Bus an.
Im Seminar werden Konzepte und Features wie z.B. Publish/Subscribe, Compaction, Replikation und Partitionierung vorgestellt. In zahlreichen Übungen hast du die Gelegenheit Erfahrung mit Kafka für die Praxis aufzubauen.
Einführung
- Batching & Streaming
- Real-Time Data Feeds
- Anwendungsgebiete: Tracking, Monitoring, Logging, Statistik & Stream Processing
Architektur
- Persistenz
- HD oder SSD?
- Caching im Memory und Pagecache
- Event Sourcing mit Kafka
Messaging mit Kafka
- Erstellen von Producer und Consumer mit Java
- 1:1 Queueing und 1:n Publish/Subscribe
Clustering
- Clustering Grundlagen: Verfügbarkeit, Ausfallsicherheit, Lastverteilung und Skalierbarkeit
- Skalierung in der Z-Achse: Partioning
- Der Unterschied zwischen Partioning und Replication
- Die Zookeeper Registry
- Aufbau eines Clusters
- Loadbalancing & Heartbeats
- Replication & Fault Tolerance
- Was passiert beim Ausfall eines Knotens im Cluster?
- Wie kann ein Knoten wieder in den Cluster integriert werden?
Stream Processing
- Kurze Einführung in das Streamprocessing
- Was ist ein Stream?
- Java 8 Grundlagen: Lambdas
- Kafka Streams
- Beschreiben von Transformationen mit der KStream DSL
Kafka und Apache Spark
- Kafka mit Spark verbinden
- Stream Processing mit Spark
Kafka Connect
- Import und Export von Daten mit Kafka Connect
Sicherheit
- Garantien für Reihenfolge und Ausfallsicherheit
- Machs nochmal Sam: Retries
- Verschlüsselte Verbindungen mit SSL/TLS
Betrieb
- Automatische Bereinigung des Logs
- Limitieren mit Quotas
- Konfiguration
Performanz Tuning
- Kompression von Nachrichten mit ZIP
- Batching: Wie finde ich die optimale Batch-Größe?
- Optimale Anzahl von Knoten im Cluster
Administration
- Anlegen und Ändern von Topics
- Platz sparen mit Log Compaction
- Skalierung einer Clusters
Weitere Themen
- Projekte des Kafka Ecosystems
Zielgruppe
Administratoren, Entwickler und Software Architekten
Vorkenntnisse
IT Grundlagen, Grundlagen in der Java Programmierung
Dauer
2 Tage
Kursunterlage
Handouts aller in der Schulung präsentierten Folien sowie ein Skript mit Übungen.
Apache and Apache Kafka sind eingetragen Warenzeichen der Apache Software Foundation.