+ All Categories
Home > Documents > Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive...

Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive...

Date post: 03-Jun-2020
Category:
Upload: others
View: 21 times
Download: 0 times
Share this document with a friend
31
Ein Einstieg in das Stream Processing mit Kafka Streams DSL und KSQL Streaming mit Apache Kafka
Transcript
Page 1: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

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

Streaming mit Apache Kafka

Page 2: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Über mich

Page 3: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Ü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

Page 4: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Agenda

Streaming mit Apache Kafka

§ Message Broker/Kafka Basics§ Stream Processing in der Theorie§ Showcase mit Kafka Streaming API und KSQL

Page 5: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Die Welt der Daten

Page 6: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

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

Page 7: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Die Welt der Daten

Streaming mit Apache Kafka

RDBMS

HadoopCluster

DataSource

DataSource

DataSource

RDBMS

HadoopCluster

Real-TimeProcessing

DataSource

DataSource

DataSource

DataSource

DataSource

DataSource

@zaroselectro

Page 8: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Die Welt der Daten

Streaming mit Apache Kafka

[Bildquelle: © confluent.io]@zaroselectro

Page 9: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Message Broker

Page 10: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Message Broker

Streaming mit Apache Kafka

Message Broker

Producer

Producer

Producer

Producer

Consumer

Consumer

Consumer

@zaroselectro

Page 11: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

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

Page 12: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Publish-Subscribe

Streaming mit Apache Kafka

TopicProducer

Consumer

Consumer

Consumer

MSG 1

MSG 1

MSG 1

MSG 1M

SG 1

Subscribe

Subscribe

Subscribe

@zaroselectro

Page 13: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Point-To-Point

Streaming mit Apache Kafka

QueueProducer

Consumer

Consumer

Consumer

MSG 1

MSG 2

MSG 3M

SG 1

MSG

2

MSG

3

MSG

1

MSG

2

MSG

3

@zaroselectro

Page 14: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Kafka Basics

Page 15: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

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

Page 16: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

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

Page 17: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

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

Page 18: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Stream Processing in der Theorie

Page 19: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Prozessor Topologien

Streaming mit Apache Kafka

§ Stream Processors§ Source Processors§ Sink Processors

SourceProcessor

StreamProcessor

SinkProcessor

Stream

@zaroselectro

Page 20: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

DSL

Kafka Streams

Streaming mit Apache Kafka

Kafka Stream DSL (Domain Specific Language)

§ https://docs.confluent.io/current/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

Page 21: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

KSQL

Streaming mit Apache Kafka

KSQL-Konsole

KSQL Server

REST API Engine

@zaroselectro

Page 22: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Einsatzgebiete von Streaming

Streaming mit Apache Kafka

IoT Bereich Finanzwelt § Aktienhandel

Shop-Systeme§ Recommendations§ Page-Click-Tracking§ Logins

Logfile-Analysen§ Intrusion Detection

@zaroselectro

Page 23: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Showcase mit Kafka Streaming API

Page 24: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

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

Page 25: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Showcase

Streaming mit Apache Kafka

products_orders

ProductOrderSourceProcessor

MaskingStreamProcessor

StockManagementSinkProcessor

stockmanagement

BillingSinkProcessor

billings

MarketingSinkProcessor

toporders

ArchiveSinkProcessor

archiv

@zaroselectro

Page 26: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Streaming mit Apache Kafka

@zaroselectro

Page 27: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Vielen Dank

Streaming mit Apache Kafka

https://github.com/diva-e/kafka-streaming-talk.git

@zaroselectro

Page 28: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

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.

Page 29: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

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

Page 30: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

Buchtipps

Streaming mit Apache Kafka

Kafka: The Definitive GuideReal-time data and streamprocessing at scale

von Neha Narkhede, Gwen Shapira, Todd Palino

Kafka Streams in Action

von William P. Bejeck Jr.

@zaroselectro

Page 31: Streaming mitApache Kafka - JUG Saxony Day · Streaming mit Apache Kafka Kafka: The Definitive Guide Real-time dataandstream processingat scale von NehaNarkhede, Gwen Shapira, Todd

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


Recommended