Slide 1

Slide 1 text

Kafka ist nicht nur ein Autor Hamburg, 28.03.2019 Flah-Uddin Ahmad Solution Architect

Slide 2

Slide 2 text

„Nichtstun ist eine der größten und verhältnismäßigen leicht zu beseitigenden Dummheiten.“

Slide 3

Slide 3 text

Inhalt 01 Ein kurzer Überblick über Hermes Germany 02 Was ist überhaupt Apache Kafka? 03 Wer nutzt alles Kafka? 04 Anwendungsmöglichkeiten von Kafka 05 Wie wird Kafka bei Hermes verwendet? 06 Kernkonzepte von Kafka 07 Unterschiede zwischen Kafka und Queueing-Lösungen 08 Live Demo

Slide 4

Slide 4 text

Ein kurzer Überblick über Hermes Germany 01

Slide 5

Slide 5 text

Hermes Germany ist einer der größten Paket-Logistiker Deutschlands. • Gegründet 1972 • Wir stellen derzeit etwa 400 Millionen Pakete pro Jahr zu • Wir stellen uns mit 250 IT-Spezialisten den Herausforderungen der Logistik • Wir sind Teil der Otto-Gruppe • Neben Privatkunden sind unsere Hauptkunden Otto, Amazon, H&M und Zalando

Slide 6

Slide 6 text

Was ist überhaupt Apache Kafka? 02

Slide 7

Slide 7 text

Was ist überhaupt Apache Kafka? 7 Verteilte Streaming Plattform Drei Haupteigenschaften • Publish / Subscribe • Fehlertoleranz • Garantierte Reihenfolge Aktuelle Version 2.1.1 (Feb 15, 2019) Entwickelt in Scala / Java

Slide 8

Slide 8 text

Historie von Kafka 8 Entwickelt von LinkedIn • Open Source seit 2011 • Seit 2012 Teil der Apache Foundation Confluent • Gegründet im Jahr 2014 • Fokussiert sich auf die Weiterentwicklung von Kafka

Slide 9

Slide 9 text

Begrifflichkeiten 9 • Producer • Consumer • Broker • Kafka Cluster • Topic

Slide 10

Slide 10 text

Wer nutzt alles Kafka? 03

Slide 11

Slide 11 text

Wer nutzt alles Kafka? 11

Slide 12

Slide 12 text

Wer nutzt alles Kafka? 12

Slide 13

Slide 13 text

Wer nutzt alles Kafka? 13

Slide 14

Slide 14 text

Anwendungs- möglichkeiten von Kafka 04

Slide 15

Slide 15 text

Kafka als Messaging System 15 Message Queue Lastverteilung Kein Multi-Subscriber Publish / Subscribe Multi Subscriber Keine Lastverteilung Kafka vereint beide Vorteile => Consumer Groups

Slide 16

Slide 16 text

Kafka als Storage System 16 • Jedes Messaging System, das ohne Kopplung Nachrichten erzeugen und lesen kann • Alle Daten werden in Kafka auf die Festplatte geschrieben und für die Ausfallsicherheit repliziert • Kafka bietet für Producer ein Acknowledgement an => Persistierung erfolgreich • Kafka verhält sich gleich egal, ob auf dem Server 50KB oder 50TB persistenter Daten liegen • Kafka kann als verteiltes, hoch performantes Dateisystem mit niedriger Latenz und Replizierung angesehen werden

Slide 17

Slide 17 text

Kafka für Stream Processing 17 • Es reicht nicht aus Datenströme lesen, schreiben und speichern zu können • Der Zweck ist die Echtzeit-Verarbeitung von Streams • Ein Stream Processor in Kafka ist alles was: 1. Kontinuierliches Lesen von Daten aus einem Input-Topic 2. Manipulation der gelesenen Daten in beliebiger Form 3. Schreiben der modifizierten Daten in einen Output-Topic

Slide 18

Slide 18 text

Alle Anwendungsmöglichkeiten vereint! 18

Slide 19

Slide 19 text

Wie wird Kafka bei Hermes verwendet? 05

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Architektur von Last Mile Analytics 21

Slide 22

Slide 22 text

Kernkonzepte von Kafka 06

Slide 23

Slide 23 text

Kafka hat 4 Kern-APIs 23 • Producer API • Consumer API • Streams API • Connector API

Slide 24

Slide 24 text

Apache ZooKeeper 24 • Koordinator für verteilte Systeme • Managt das Kafka Cluster • Kafka läuft nicht ohne Aufgaben • Leadership election • Broker & Topic • Service discovery • Topologie • Neuer Broker gejoined • Broker nicht länger erreichbar • Neues Topic oder Topic gelöscht ZooKeeper Cluster

Slide 25

Slide 25 text

Topics & Partitions 25 • Topics sind eine Kernabstraktion in Kafka • Topic = Stream von Records • Ein Topic hat einen eindeutigen Namen im Cluster • Topics sind immer Multi-Subscriber fähig • Jedes Topic in Kafka besteht aus mindestens einer Partition • Jede Partition ist geordnet und eine unveränderbare Sequenz von Records • Jedem Record wird eine sequentielle ID innerhalb der Partition zugewiesen => Offset

Slide 26

Slide 26 text

Persistence & Retention 26 • Kafka persistiert alle Records für einen definierten Zeitraum => Cleanup Policies • Dabei spielt es keine Rolle, ob ein Record consumed wurde oder nicht • Kafka schreibt alle Daten auf die Festplatte • Cleanup Policies • Retention-Time • Retention-Size • Log-Compaction

Slide 27

Slide 27 text

Log-Compaction Guarantees 27 • Consumer, die mit dem Head mithalten, können alle Records sehen • Die Zeitspanne für die Komprimierung kann festgelegt werden • Ordnung bleibt bestehen • Nachrichten werden nur gelöscht • Offset eines Records bleibt immer gleich

Slide 28

Slide 28 text

Producer 28 • Veröffentlichen Daten in einem Topic ihrer Wahl • Senden die Daten direkt zu dem Partition Leader • Jeder Broker kann mitteilen, wer der Leader ist • Producer sind dafür verantwortlich, die Partition für ihre Records auszuwählen • Über einen Key • Random • Round-Robin (Standard)

Slide 29

Slide 29 text

Consumer 29 • Sind Teil einer Consumer Group • Geben den Topic an, welchen sie konsumieren möchten • Partitionen eines Topics werden auf die Consumer in einer Consumer Group aufgeteilt • Eine Partition wird genau einem Consumer zugeordnet

Slide 30

Slide 30 text

Consumer 30 Was passiert, wenn wir mehr Consumer als Partitionen haben?

Slide 31

Slide 31 text

Consumer 31 Was passiert, wenn wir mehr Consumer als Partitionen haben? Was passiert, wenn wir mehrere Consumer Groups haben?

Slide 32

Slide 32 text

Consumer 32 Was passiert, wenn wir mehrere Consumer Groups haben?

Slide 33

Slide 33 text

Skalierbarkeit durch Partitionierung & Ausfallsicherheit durch Replizierung 33 Producer Kafka Cluster Broker 1 Broker 2 Broker 3 Topic 1 Partition 0 Partition 1 Partition 2 Topic 1 Partition 0 Partition 1 Partition 2 Topic 1 Partition 0 Partition 1 Partition 2

Slide 34

Slide 34 text

Unterschiede zwischen Kafka und Queueing- Lösungen 07

Slide 35

Slide 35 text

„Es gibt Möglichkeiten für mich, gewiss, aber unter welchem Stein liegen sie?“

Slide 36

Slide 36 text

Unterschiede zwischen Kafka und Queueing-Lösungen 36 Vergleichsthemen Apache Kafka Message Queue Modell Consumer Groups Publish / Subscribe oder Queueing Persistierung Message Retention Time to Live bis Konsumierung Reihenfolge der Nachrichten Fest auf Partitionsebene Fest für genau einem Consumer Verteilungsprinzip Pull Push Skalierbarkeit Design Prinzip Add On Anwendungsmöglichkeit Vielseitig Begrenzt Logik / Intelligenz Dumb Pipes & Smart Endpoints Smart Broker

Slide 37

Slide 37 text

Live Demo 08

Slide 38

Slide 38 text

Live Demo Cloud 38 OTC Docker (AppAgile) Web App Java Spring Producer Kafka Cluster Java Spring Consumer

Slide 39

Slide 39 text

http://jug-producer-web-app-jug-kafka.aotp010.mcs-paas.io/ 39

Slide 40

Slide 40 text

Live Demo Lokal 40 Docker (Local) Kafka Cluster Kafka Console Producer Kafka Console Consumer

Slide 41

Slide 41 text

Kontakt Flah-Uddin Ahmad Solution Architect Hermes Germany GmbH Essener Bogen 1 22419 Hamburg [email protected] www.hermesworld.com

Slide 42

Slide 42 text

Inhalt Platzhalter Präsentationstitel