Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Data Pipeline mit Apache Kafka
oder

Wie könnten Narren müde werden?
Inhalt
Wer wir sind
Was Apache Kafka ist
Wie wir Kafka nutzen und was wir mit Kafka & AWS erlebt haben
Wie ein Cluster fun...
Wer wir sind
Software Engineers bei emetriq
Java, JavaScript, Ruby (Chef), Groovy…
Apache Kafka, Cassandra, ElasticSearch
...
Über emetriq
kollaborativer Datenpool mit intelligenten Datenprodukten
Viele Firmen bringen Daten in den Pool ein und wir ...
Was Apache Kafka ist
Was Kafka ist
Publish-Subscribe-Messaging System
„Kafka is a distributed, partitioned, replicated commit log service“
„Uni...
 	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐...
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	...
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ...
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  
|	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  
|	
  	
  Partitio...
Kafka Writes
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  Partition...
Kafka Producer
Synchron oder asynchron
Batching
Compression
public class KafkaProducer<K, V> implements Producer<K, V> {
p...
Was macht Kafka mit den Daten?
Writes an Logfile anhängen
Beim fetch von file auf socket schreiben
Async/Background
Replicat...
API High Level Consumer
Kann 1 bis n Topics konsumieren
Konsumiert ein oder mehr Partitionen
Können in einer ConsumerGroup...
Consumer Groups
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+	
  	
  	
  	
  	
 ...
Wie wir Kafka nutzen und was mit Kafka & AWS erlebt haben
emetriq Architektur*	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
...
Kafka @ emetriq
6 Kafka-Broker mit je 4 TB
ca. 2600 Msg-In/s pro Broker (15.600 Msg-In/s im Cluster zur Mittagszeit)
Teilw...
TTL greift nicht bei Broker Recovery
Wenn ein Broker seine Daten verliert, werden sie neu gezogen
Die TTL eines Topics gil...
Skalierung / Performance
Zookeeper macht viele IOPS, deshalb Provisioned IOPS EBS nehmen
vor allem wenn die Consumer zu of...
Langsame EBS
Langsame EBS können zu 

Problemen bei 

in-sync-replicas (ISR) führen
ISR = max. 4000 Msg hinter Leader
Producer Queues
„Kafka will remain available in the presence of node failures after a short fail-
over period“
Die Queues ...
Wie ein Cluster funktioniert und ausfällt
Unser Kafka Cluster
5 Kafka RaspberryPI
ARM Cortex-A7 Quad 900MHz
1GB RAM
1 Zookeeper RaspberryPI*
2 Switches
*SPOF, don’t...
Fractals via Kafka
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­...
Was Ihr noch wissen wollt
Fragen?
Kommentare!
.com/jobs
Quellen
https://kafka.apache.org/documentation.html
https://issues.apache.org/jira/browse/KAFKA-1379
http://blog.parsely.c...
 Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015
 Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015
 Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.talks 2015
You’ve finished this document.
Download and read it offline.
Upcoming SlideShare
publieke lening privaat fondsbeheer F_Beerepoot
Next
Upcoming SlideShare
publieke lening privaat fondsbeheer F_Beerepoot
Next
Download to read offline and view in fullscreen.

Share

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

Download to read offline

code.talks 2015 hosted by ABOUT YOU

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

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

  1. 1. Data Pipeline mit Apache Kafka oder
 Wie könnten Narren müde werden?
  2. 2. 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)
  3. 3. 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
  4. 4. Ü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)
  5. 5. Was Apache Kafka ist
  6. 6. 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…
  7. 7.                                      +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              |                                      +-­‐-­‐-­‐-­‐-­‐-­‐-­‐>  Consumer  |   |  Producer  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐>                                      |              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              |                                      |              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                        |      Kafka  Cluster      +-­‐-­‐-­‐-­‐-­‐-­‐-­‐>  Consumer  |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              |                                      |              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |  Producer  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐>                                      |              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              |                                      +-­‐-­‐-­‐-­‐-­‐-­‐-­‐>  Consumer  |                                        +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                                            |                                                                                                                      |                                                                                                                      |                                                                                                       +-­‐-­‐-­‐-­‐-­‐-­‐v-­‐-­‐-­‐-­‐-­‐-­‐+                                                                                          |    Zookeeper    |                                                                                          +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                            
  8. 8. +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |                                      |   |                                      |   |                                      |   |      Kafka  Cluster      |   |                                      |   |                                      |   |                                      |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+ +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |                                    |   |    Topic                      |   |                                    |   |    name,  TTL,  ...    |   |                                    |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+ +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |                                    |   |    Topic                      |   |                                    |   |    name,  TTL,  ...    |   |                                    |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+
  9. 9. +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |                                    |   |    Topic                      |   |                                    |   |    name,  TTL,  ...    |   |                                    |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+ +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |                          |   |    Partition    |   |                          |   |    id                  |   |                          |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+ +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |                          |   |    Partition    |   |                          |   |    id                  |   |                          |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+
  10. 10. +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |                          |   |    Partition    |   |                          |   |    id                  |   |                          |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+ +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |                          |   |    Logfile        |   |                          |   |    mtime,...    |   |                          |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+ +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   |                          |   |    Logfile        |   |                          |   |    mtime,...    |   |                          |   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+
  11. 11. Kafka Writes                                                  Partitions                                                                                                +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+                                                                                      |      |      |      |      |      |                                                                                  /  |  0  |  1  |  2  |  3  |      |      <-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                              |  |      |      |      |      |      |                                  |                                              |  +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+                                  |                                              |                                                                              |                                              |  +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                  +                                              |  |      |      |                      |                                                 Locally  sorted    ++  |  0  |  1  |                      |      <-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  Writes                                    |  |      |      |                      |                                                                                  |  +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                  +                                              |                                                                              |                                              |  +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                  |                                              |  |      |      |      |              |                                  |                                                |  0  |  1  |  2  |              |      <-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                                  |      |      |      |              |                                                                                      +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                              
  12. 12. Kafka Producer Synchron oder asynchron Batching Compression public class KafkaProducer<K, V> implements Producer<K, V> { public Future<RecordMetadata> send(ProducerRecord<K, V> record, Callback callback){ ... } }
  13. 13. 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
  14. 14. 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)
  15. 15. Consumer Groups +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                               |      Consumer          |  Offset          v                               |      Group                |            +-­‐-­‐-­‐+-­‐+-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+   |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |            |      |      |      |      |      |   |  |    Consumer    |  |            |  0  |  1  |  2  |  3  |      |   |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |            |      |      |      |      |      |   |                                |            +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+   |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |  Offset                                           |  |    Consumer    |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                       |  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |                v                                       +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+            +-­‐+-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                  |                              |      |      |                      |                  |                              |  0  |  1  |                      |                  |                              |      |      |                      |                  |                              +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                  |                    Offset                                                          +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                                                                          v                                                                      +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐+-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                                  |      |      |      |              |                                                  |  0  |  1  |  2  |              |                                                  |      |      |      |              |                                                  +-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  
  16. 16. Wie wir Kafka nutzen und was mit Kafka & AWS erlebt haben
  17. 17. emetriq Architektur*                                                                                        Browser                                                                                                                                                                                          ^            +                                                                                                                                                                                          |            |                                                                                                                                                                                          |            |                                                                                                                                                                                          |            |                                                                                                                                                                                          |            |                                                                                                                                                                                  +-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐v-­‐-­‐-­‐+                                                                                                                                                                          |      Webserver    |                                                                                                                      +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐>                            |                                    AWS                                                                            |                                                  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐+                                                                                                                      |                                                                  |                                                                                                                                    |                                                                  |                                                                                                                                    |                                                                  |                                                                                                                                    |                                                                  |                                                                                                                                    |                                                                  |                                                                                                                    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐v-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                    |                              |              |                                                                        |                  |                                    |                    |      Cassandra      <-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                              Kafka                                +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐>      ElasticSearch    |                    |                              |              |                                                                        |                  |                                    |                    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐^-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                    |                                                                  |                                                                                                           +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                            |                                                                  |                                                                                                                                    |                                              +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐v-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                                                                                                |                                              |                                      |                              Rechenzentrum  Hamburg                                        |                                              |                                      |                                                                                                                +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+            Hadoop              |                                                                                                                                                                |                                      |                                                                                                                                                                |                                      |                                                                                                                                                                +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                                                                       * extrem vereinfacht
  18. 18. Kafka @ emetriq 6 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)
  19. 19. 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
  20. 20. 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/
  21. 21. Langsame EBS Langsame EBS können zu 
 Problemen bei 
 in-sync-replicas (ISR) führen ISR = max. 4000 Msg hinter Leader
  22. 22. 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)
  23. 23. Wie ein Cluster funktioniert und ausfällt
  24. 24. 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
  25. 25. Fractals via Kafka                                      +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              |    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+    |                +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  |   |  Producer  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐>  |  Coordinates  +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐>  |Fractal  Generator+-­‐+   +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+              |    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+    |                +-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                            |                                      |                                |                                                                |                                      |                                |                           +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                  |    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+    |                                |                           |Renderer|  <-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+      Fractals    |  <-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                           +-­‐-­‐-­‐-­‐+-­‐-­‐-­‐+                  |    +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+    |                                                                      |                          |                                      |                                                                      |                          |              Kafka              |                                                                      |                          |                                      |                                                                      |                          +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+                                                                      |                                                                                                                                          v                                                                                                                                
  26. 26. Was Ihr noch wissen wollt Fragen? Kommentare! .com/jobs
  27. 27. 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

code.talks 2015 hosted by ABOUT YOU

Views

Total views

818

On Slideshare

0

From embeds

0

Number of embeds

2

Actions

Downloads

5

Shares

0

Comments

0

Likes

0

×