Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Streaming mit Apache Kafka - Ein Einstieg in das Stream Processing mit Kafka Streams DSL und KSQL

Streaming mit Apache Kafka - Ein Einstieg in das Stream Processing mit Kafka Streams DSL und KSQL

Die Welt der Datenströme in Echtzeit zu analysieren, wird immer mehr und mehr zur Anforderung verschiedenster Business-Units. Egal ob im IoT-Bereich, in der Finanzwelt oder bei größeren Shop-Anwendungen – überall ist Stream Processing mittlerweile ein wichtiger Bereich. Im Gegensatz zur herkömmlichen Batch-Verarbeitung können durch die Echtzeit-Verarbeitung der eintreffenden Ereignisse Unternehmen bedeutend schneller diese Daten analysieren und darauf reagieren.

Die Firma Confluent bietet mit der Open-Source-Software Apache Kafka sowie den dazugehörigen Tools wie z.B. Kafka Connect, KSQL oder vor allem der Kafka Stream API einen großen Baukasten, um Datenströme zu verarbeiten.

In diesem Vortrag soll ein kurzer Überblick über das Thema Message Broker und ein paar Basics zu Apache Kafka geschaffen werden.

Thomas Müller

September 13, 2019
Tweet

More Decks by Thomas Müller

Other Decks in Technology

Transcript

  1. Über mich Streaming mit Apache Kafka Thomas Müller § Senior

    Software-Developer im Bereich Java- Backend-Systeme bei diva-e § Lieblings-Spielplätze: Apache Kafka, Hazelcast, Spring-Boot-Applikationen § Email: [email protected] § Twitter: @zaroselectro @zaroselectro
  2. Agenda Streaming mit Apache Kafka § Message Broker/Kafka Basics §

    Stream Processing in der Theorie § Showcase mit Kafka Streaming API und KSQL
  3. Die Welt der Daten Streaming mit Apache Kafka Zuverlässige Informationen

    sind unbedingt nötig für das Gelingen eines Unternehmens. Christoph Kolumbus (1451 - 1506) @zaroselectro
  4. Die Welt der Daten Streaming mit Apache Kafka RDBMS Hadoop

    Cluster Data Source Data Source Data Source RDBMS Hadoop Cluster Real-Time Processing Data Source Data Source Data Source Data Source Data Source Data Source @zaroselectro
  5. Message Broker Streaming mit Apache Kafka Message Broker Producer Producer

    Producer Producer Consumer Consumer Consumer @zaroselectro
  6. Message Broker Streaming mit Apache Kafka § Middle-Ware zum Empfang

    und Versand von Nachrichten § Dient als Datenpipeline § Lose Kopplung der Systeme § Verarbeitung unterschiedlichster Arten von Nachrichten • Informationen von Sensoren • Transaktionen vom Börsenhandel • Bestellungen eines Shop-Systems • Transaction-Log einer Datenbank • Logfiles einer Webanwendung • etc. § Kommunikation: Publish-Subscribe oder Point-To-Point @zaroselectro
  7. Publish-Subscribe Streaming mit Apache Kafka Topic Producer Consumer Consumer Consumer

    MSG 1 MSG 1 MSG 1 MSG 1 MSG 1 Subscribe Subscribe Subscribe @zaroselectro
  8. Point-To-Point Streaming mit Apache Kafka Queue Producer Consumer Consumer Consumer

    MSG 1 MSG 2 MSG 3 MSG 1 MSG 2 MSG 3 MSG 1 MSG 2 MSG 3 @zaroselectro
  9. Warum Kafka Streaming mit Apache Kafka Vorteile § Sehr hoher

    Datendurchsatz § Exzellente Skalierbarkeit § Redundanz § Vorhaltung der Nachrichten § Unterstützung Batch- als auch Real-Time-Verarbeitung der Messages Abgrenzung zu anderen Message Brokern § Apache Kafka wurde von Anfang an für den Cluster-Betrieb entwickelt § Nachrichten werden nicht gelöscht, wenn sie zugestellt wurden § Nachrichten sind wieder abspielbar @zaroselectro
  10. Kafka Streams Streaming mit Apache Kafka § Nachrichten werden nicht

    nur von Producer zu Customer weitergereicht § On-The-Fly-Weiterverarbeitung von Nachrichten § Ergebnisse des Streamings werden in Topics geschrieben § Stream API ist eine eigenständige Java-Library @zaroselectro
  11. Kafka Streams Streaming mit Apache Kafka App Instanz 1 Kafka

    Streams API App Instanz 2 Kafka Streams API App Instanz 3 Kafka Streams API Kafka Cluster @zaroselectro
  12. Prozessor Topologien Streaming mit Apache Kafka § Stream Processors §

    Source Processors § Sink Processors Source Processor Stream Processor Sink Processor Stream @zaroselectro
  13. DSL Kafka Streams Streaming mit Apache Kafka Kafka Stream DSL

    (Domain Specific Language) § https://docs.confluent.io/curre nt/streams/developer- guide/dsl-api.html § Empfohlen für die meisten Anwendungsfälle § Business-Logik kann oft mit ein paar Zeilen Code abgebildet werden § Kapselung der Stream- Processing-Komplexität API KSQL Kafka Processor API § Der Low-Level Weg, um Stream- Processing mit Topologien aufzubauen § Bietet mehr Flexibilität als Kafka Stream DSL KSQL § Streaming mittels SQL- ähnlicher Syntax @zaroselectro
  14. Einsatzgebiete von Streaming Streaming mit Apache Kafka IoT Bereich Finanzwelt

    § Aktienhandel Shop-Systeme § Recommendations § Page-Click-Tracking § Logins Logfile-Analysen § Intrusion Detection @zaroselectro
  15. Showcase Streaming mit Apache Kafka Generator, der zufällige Bestellungen erzeugt

    Schrauben-Online-Shop § ID § Liste von Produkten § User-ID § Email § Kreditkartennummer § Gesamtbetrag ProductOrder Alle Bestellungen Rechnungswesen Archiv Marketing Lagerverwaltung @zaroselectro
  16. Showcase Streaming mit Apache Kafka products_orders ProductOrder SourceProcessor Masking StreamProcessor

    StockManagement SinkProcessor stockmanagement Billing SinkProcessor billings Marketing SinkProcessor toporders Archive SinkProcessor archiv @zaroselectro
  17. https://github.com/diva-e/kafka-streaming-talk.git Vielen Dank Copyright © diva-e Alle Angaben basieren auf

    dem derzeitigen Kenntnisstand. Änderungen vorbehalten. Dieses Dokument der diva-e Digital Value Excellence GmbH ist ausschließlich für den Adressaten bzw. Auftraggeber bestimmt. Es bleibt bis zur einer ausdrücklichen Übertragung von Nutzungsrechten Eigentum der diva-e. Jede Bearbeitung, Verwertung, Vervielfältigung und/oder gewerbsmäßige Verbreitung des Werkes ist nur mit Einverständnis von diva-e zulässig.
  18. Stream vs. Table Streaming mit Apache Kafka Key Value key01

    value01 Key Value key01 value01 key02 value02 Key Value key01 value03 key02 value02 key01 value01 key02 value02 key01 value03 Stream Table @zaroselectro
  19. Buchtipps Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time

    data and stream processing at scale von Neha Narkhede, Gwen Shapira, Todd Palino Kafka Streams in Action von William P. Bejeck Jr. @zaroselectro
  20. Log Compaction Copyright © diva-e 31 Präsentationstitel – Kapitel Offset

    Key Value 0 K01 V01 1 K02 V02 2 K03 V03 3 K02 V04 4 K04 V05 5 K01 V06 6 K05 V07 Offset Key Value 2 K03 V03 3 K02 V04 4 K04 V05 5 K01 V06 6 K05 V07