moritz siuts & robert von massow - data pipeline mit apache kafka - code.talks 2015

30
Data Pipeline mit Apache Kafka oder Wie könnten Narren müde werden?

Upload: aboutyougmbh

Post on 12-Apr-2017

610 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Data Pipeline mit Apache KafkaoderWie könnten Narren müde werden?

Page 2: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Inhalt

Wer wir sind

Was Apache Kafka ist

Wie wir Kafka nutzen und was wir mit Kafka & AWS erlebt haben

Wie ein Cluster funktioniert und ausfällt

Was ihr noch wissen wollt (Fragen)

Page 3: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Wer wir sind

Software Engineers bei emetriq

Java, JavaScript, Ruby (Chef), Groovy…

Apache Kafka, Cassandra, ElasticSearch

„You build it, you run it“

Moritz Siuts @coderaid

Robert von Massow @skompele

Page 4: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Über emetriq

kollaborativer Datenpool mit intelligenten Datenprodukten

Viele Firmen bringen Daten in den Pool ein und wir veredeln diese

Produkte sind z.B. Targeting, Retargeting oder Recommendations

Wir suchen Leute mit Talent & Interesse an:Big Data, Cloud, Java, Ruby, Scala, Agile…

hiring (emetriq.com/jobs) and firing (jeder bekommt eine Nerf-Gun)

Page 5: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Was Apache Kafka ist

Page 6: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Was Kafka ist

Publish-Subscribe-Messaging System

„Kafka is a distributed, partitioned, replicated commit log service“

„Unified platform for handling all the real-time data feeds a large company might have“

Entwickelt bei LinkedIn, verwendet u.a. bei Netflix, Yahoo…

Page 7: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

                                     +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              |                                      +-­‐-­‐-­‐-­‐-­‐-­‐-­‐>  Consumer  |  |  Producer  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐>                                      |              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              |                                      |              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                        |      Kafka  Cluster      +-­‐-­‐-­‐-­‐-­‐-­‐-­‐>  Consumer  |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              |                                      |              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |  Producer  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐>                                      |              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              |                                      +-­‐-­‐-­‐-­‐-­‐-­‐-­‐>  Consumer  |                                        +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                                            |                                                                                                                      |                                                                                                                      |                                                                                                       +-­‐-­‐-­‐-­‐-­‐-­‐v-­‐-­‐-­‐-­‐-­‐-­‐+                                                                                          |    Zookeeper    |                                                                                          +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                            

Page 8: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |                                      |  |                                      |  |                                      |  |      Kafka  Cluster      |  |                                      |  |                                      |  |                                      |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+

+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |                                    |  |    Topic                      |  |                                    |  |    name,  TTL,  ...    |  |                                    |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+

+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |                                    |  |    Topic                      |  |                                    |  |    name,  TTL,  ...    |  |                                    |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+

Page 9: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |                                    |  |    Topic                      |  |                                    |  |    name,  TTL,  ...    |  |                                    |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+

+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |                          |  |    Partition    |  |                          |  |    id                  |  |                          |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+

+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |                          |  |    Partition    |  |                          |  |    id                  |  |                          |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+

Page 10: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |                          |  |    Partition    |  |                          |  |    id                  |  |                          |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+

+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |                          |  |    Logfile        |  |                          |  |    mtime,...    |  |                          |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+

+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |                          |  |    Logfile        |  |                          |  |    mtime,...    |  |                          |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+

Page 11: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Kafka Writes                                                  Partitions                                                                                                +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+                                                                                      |      |      |      |      |      |                                                                                  /  |  0  |  1  |  2  |  3  |      |      <-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                              |  |      |      |      |      |      |                                  |                                              |  +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+                                  |                                              |                                                                              |                                              |  +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                  +                                              |  |      |      |                      |                                                Locally  sorted    ++  |  0  |  1  |                      |      <-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  Writes                                    |  |      |      |                      |                                                                                  |  +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                  +                                              |                                                                              |                                              |  +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                  |                                              |  |      |      |      |              |                                  |                                              \  |  0  |  1  |  2  |              |      <-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                                  |      |      |      |              |                                                                                      +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                              

Page 12: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Kafka ProducerSynchron oder asynchron

Batching

Compression

public class KafkaProducer<K, V> implements Producer<K, V> {

public Future<RecordMetadata> send(ProducerRecord<K, V> record, Callback callback){ ... }

}

Page 13: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Was macht Kafka mit den Daten?Writes an Logfile anhängen

Beim fetch von file auf socket schreiben

Async/Background

Replication

Daten löschen wenn veraltet (Retention Time pro Topic)

Log compaction

Leader election

Page 14: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

API High Level Consumer

Kann 1 bis n Topics konsumieren

Konsumiert ein oder mehr Partitionen

Können in einer ConsumerGroup zusammengefasst werden

Maximal ein Consumer pro Partition (in der gleichen Group)

Page 15: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Consumer Groups+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                              |      Consumer          |  Offset          v                              |      Group                |            +-­‐-­‐-­‐+-­‐+-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+  |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |            |      |      |      |      |      |  |  |    Consumer    |  |            |  0  |  1  |  2  |  3  |      |  |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |            |      |      |      |      |      |  |                                |            +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+  |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |  Offset                                          |  |    Consumer    |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                      |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |                v                                      +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+            +-­‐+-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                  |                              |      |      |                      |                  |                              |  0  |  1  |                      |                  |                              |      |      |                      |                  |                              +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                  |                    Offset                                                          +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                                                                          v                                                                      +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐+-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                                  |      |      |      |              |                                                  |  0  |  1  |  2  |              |                                                  |      |      |      |              |                                                  +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  

Page 16: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Wie wir Kafka nutzen und was mit Kafka & AWS erlebt haben

Page 17: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

emetriq Architektur*                                                                                        Browser                                                                                                                                                                                          ^            +                                                                                                                                                                                          |            |                                                                                                                                                                                          |            |                                                                                                                                                                                          |            |                                                                                                                                                                                          |            |                                                                                                                                                                                  +-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐v-­‐-­‐-­‐+                                                                                                                                                                          |      Webserver    |                                                                                                                      +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐>                            |                                    AWS                                                                            |                                                  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+                                                                                                                      |                                                                  |                                                                                                                                    |                                                                  |                                                                                                                                    |                                                                  |                                                                                                                                    |                                                                  |                                                                                                                                    |                                                                  |                                                                                                                    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐v-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                    |                              |              |                                                                        |                  |                                    |                    |      Cassandra      <-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                              Kafka                                +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐>      ElasticSearch    |                    |                              |              |                                                                        |                  |                                    |                    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐^-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                    |                                                                  |                                                                                                          +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                            |                                                                  |                                                                                                                                    |                                              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐v-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                                                                                                |                                              |                                      |                              Rechenzentrum  Hamburg                                        |                                              |                                      |                                                                                                                +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+            Hadoop              |                                                                                                                                                                |                                      |                                                                                                                                                                |                                      |                                                                                                                                                                +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                                                                      

* extrem vereinfacht

Page 18: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Kafka @ emetriq6 Kafka-Broker mit je 4 TB

ca. 2600 Msg-In/s pro Broker (15.600 Msg-In/s im Cluster zur Mittagszeit)

Teilweise hohe Peaks (z.B. wenn jemand 5 Tore in einem Spiel schießt)

Deployed in AWS: eu-west-1, je 2 Broker pro AZ, c4.xlarge Instanzen

typisch: Replikationsfaktor 2; Retention Time 14 Tage

Async-Batch-Producer mit GZIP Compression (keine Log-Compaction)

Page 19: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

TTL greift nicht bei Broker Recovery

Wenn ein Broker seine Daten verliert, werden sie neu gezogen

Die TTL eines Topics gilt für die Timestamps der Logfiles auf der Platte

Die Files werden beim Recovery neu angelegt

BAM: doppelter Diskspace benötigt bis zum Ende der TTL

https://issues.apache.org/jira/browse/KAFKA-1379

Page 20: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Skalierung / Performance

Zookeeper macht viele IOPS, deshalb Provisioned IOPS EBS nehmen

vor allem wenn die Consumer zu oft die Offsets commiten

Kafka braucht echt wenig CPU und auch RAM

wenn man sein Netzwerk auslastet bekommt man aber schnell Probleme

bei AWS braucht man also trotzdem große Instanzen

http://blog.parsely.com/post/1738/kafkapocalypse/

Page 21: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Langsame EBS

Langsame EBS können zu Problemen bei in-sync-replicas (ISR) führen

ISR = max. 4000 Msg hinter Leader

Page 22: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Producer Queues

„Kafka will remain available in the presence of node failures after a short fail-over period“

Die Queues müssen groß genug sein um die fail-over-period abzufangen

Vor allem in Autoscaling-Szenarien spannend (und wenn man Code optimiert und mit einem Mal n-fach mehr Req/Server abarbeitet)

Page 23: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Wie ein Cluster funktioniert und ausfällt

Page 24: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Unser Kafka Cluster

5 Kafka RaspberryPI

ARM Cortex-A7 Quad 900MHz

1GB RAM

1 Zookeeper RaspberryPI*

2 Switches

*SPOF, don’t do this in production

Page 25: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Fractals via Kafka                                      +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              |    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+    |                +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |  |  Producer  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐>  |  Coordinates  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐>  |Fractal  Generator+-­‐+  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              |    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+    |                +-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                            |                                      |                                |                                                                |                                      |                                |                          +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                  |    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+    |                                |                          |Renderer|  <-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+      Fractals    |  <-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                          +-­‐-­‐-­‐-­‐+-­‐-­‐-­‐+                  |    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+    |                                                                      |                          |                                      |                                                                      |                          |              Kafka              |                                                                      |                          |                                      |                                                                      |                          +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                                                      |                                                                                                                                          v                                                                                                                                

Page 26: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Was Ihr noch wissen wollt

Fragen?

Kommentare!

.com/jobs

Page 27: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015
Page 28: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015
Page 29: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015

Quellen

https://kafka.apache.org/documentation.html

https://issues.apache.org/jira/browse/KAFKA-1379

http://blog.parsely.com/post/1738/kafkapocalypse/

http://de.slideshare.net/miguno/apache-kafka-08-basic-training-verisign

https://github.com/yahoo/kafka-manager

Page 30: Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015