SlideShare une entreprise Scribd logo
1  sur  59
Télécharger pour lire hors ligne
Meet Kafka
BWM- 27 octobre 2017 - Lyon
“the distributed log”
Ippon Technologies © 2017
Florian Garcia
Software engineer at Ippon
fgarcia@ippon.fr
@Im_flog
● Backend lover
● Zipkin committer in spare time
● Interested in
○ Distributed tracing
○ Kafka
○ Docker
● Speaker
Kafka
● Kafka who are you?
● Kafka use cases
● Kafka 101
● Kafka Streams
● Kafka from the trenches
Kafka, who are you?
Ippon Technologies © 2017
Linkedin before Kafka (pre 2010)
@Im_flog
Ippon Technologies © 2017
Linkedin after Kafka
@Im_flog
Ippon Technologies © 2017
● Now a top level Apache project
○ Very active
○ Current release 0.11.0.X
What about today ?
● Open sourced in 2011
● Spinoff company Confluent created in 2014
○ Jay Kreps, Neda Narkhede and Jun Rao
○ Ships the Confluent platform
○ Recently raised $50M in a round C funding
@Im_flog
Ippon Technologies © 2017
The metamorphosis
● Building a Kafka ecosystem
○ Kafka Connect
○ Schema Registry
○ Integrations
● A lot of new features regularly added
● From distributed log to a streaming platform
● End to end exactly once processing !
@Im_flog
Ippon Technologies © 2017
Definitions
● Broker = a server running Kafka
● Topic = category where records are
published
● Partition = shard of a topic
● Producer = client writing to Kafka
● Consumer = client reading from Kafka
Kafka Use Cases
Ippon Technologies © 2017
Data deluge
● User activity
● Server info
● Messaging
● Business data consolidation
● Event sourcing
@Im_flog
Ippon Technologies © 2017
As a backbone
@Im_flog
Ippon Technologies © 2017
For event driven architectures
@Im_flog
Ippon Technologies © 2017
Streaming !
● Process data as soon as they are available !
● Powerful
● Easy to use
● Real time
○ decision
○ data consolidation
○ monitoring
○ fraud detection
○ …
@Im_flog
Ippon Technologies © 2017
But wait, I already bought an ESB
● ESB
○ complex logic
○ routing
○ processing
● Smart endpoints, dumb pipes !
● Kafka justs transports the data
@Im_flog
● Get rid of the ESB before you
need to sell your children
Ippon Technologies © 2017
But wait, I already use RabbitMQ
● RabbitMQ
○ Broker centric
○ Complex routing
○ Mature (Erlang)
○ Standardized (AMQP)
● Kafka
○ Consumer / producer centric
○ Ordered (per partition)
○ Higher performance
○ Backed by confluent
@Im_flog
Ippon Technologies © 2017
Who uses Kafka ?
https://kafka.apache.org/powered-by
@Im_flog
Kafka 101
Ippon Technologies © 2017
Kafka centric
@Im_flog
Ippon Technologies © 2017
● A running Kafka service
● Role
○ Read / write on disk
○ Consumer / producer interface
○ Group balancing, leader election
● Uses Zookeeper for coordination
Brokers
@Im_flog
Ippon Technologies © 2017
Topics and partitions
@Im_flog
Ippon Technologies © 2017
Message content
● RecordBatch
○ FirstOffset & LastOffsetDelta
○ FirstTimestamp & MaxTimestamp
○ MagicByte => 2 for version > 0.11.X
○ Records
● Record
○ Timestamp & Offset deltas
○ Key
○ Value
○ Headers
@Im_flog
Ippon Technologies © 2017
Compaction
● Keep only the last log for a given key
● Happens after a new segment creation by the log cleaner
@Im_flog
Ippon Technologies © 2017
Kafka guarantees
@Im_flog
Ippon Technologies © 2017
Kafka Clients
● Two low level libraries
○ Java
○ C/C++ (librdkafka)
● Clients built on top of
librdkafka
○ C#
○ Go
○ Haskell
○ Python
○ …
@Im_flog
Ippon Technologies © 2017
Producing
● Send data to topics
● Binary content
● The key define the partition
● Send asynchronously
○ buffer pending records
○ batch records for efficiency
● Retry in case of failure
@Im_flog
Ippon Technologies © 2017
Consuming
@Im_flog
Ippon Technologies © 2016
Dataset - french opendata
@Im_flog
Ippon Technologies © 2017
Example : producer (settings)
@Im_flog
https://github.com/ImFlog/kafka-playground
Ippon Technologies © 2017
Example : producer (without transactions)
@Im_flog
https://github.com/ImFlog/kafka-playground
Ippon Technologies © 2017
Example producer (with transactions)
@Im_flog
https://github.com/ImFlog/kafka-playground
Ippon Technologies © 2017
Exemple : consumer
@Im_flog
https://github.com/ImFlog/kafka-playground
Ippon Technologies © 2017
Exemple : consumer
https://github.com/ImFlog/kafka-playground
@Im_flog
Ippon Technologies © 2017
Kafka Connect
● Standardizes integration with other systems
○ Community connectors
○ Custom connectors
● Working modes
○ Distributed
○ Standalone
● Automatic offset management
● Distributed and scalable by default
@Im_flog
Ippon Technologies © 2017
Confluent platform additions
● Schema Registry
● REST Proxy
● Connector REST interface ($)
● Additional connectors ($)
● Kafka replicator ($)
● Support ($)
@Im_flog
Ippon Technologies © 2017
Performance
@Im_flog
Kafka Streams
Ippon Technologies © 2017
The goal
Source www.confluent.io
@Im_flog
Ippon Technologies © 2017
Kafka streams
● Available since version 0.10.0
● A simple and lightweight client library
● Event-at-a-time processing
● Millisecond latency
● Stateful processing
● Exactly once processing !
@Im_flog
Ippon Technologies © 2017
Anatomy
Source: Kafka documentation@Im_flog
Ippon Technologies © 2017
KStream
● An abstraction of a record stream
○ Each data is an “insert”
○ No record replaces an existing row with the same key
@Im_flog
● Example
1. ("Blend", 1)
2. ("Blend", 3)
3. Sum(“Blend”) = ?
4. Sum(“Blend”) = 4
Ippon Technologies © 2017
KTable
● An abstraction of a changelog stream
○ Each data is an “upsert”
○ Based on the record key
@Im_flog
● Example
1. ("Blend", 1)
2. ("Blend", 3)
3. Sum(“Blend”) = ?
4. Sum(“Blend”) = 3
Ippon Technologies © 2017
For developers
● kafka-stream dependency
● A high level API
○ Use java 8 lambdas
○ Map, filter, join, ...
● A low level API
○ Add and connect processors
○ Interact directly with state stores
● KafkaStream
○ KStreamBuilder (high) / TopologyBuilder (low)
○ StreamsConfig
○ .start()@Im_flog
Ippon Technologies © 2017
Operations
● Stateless transformations
○ map
○ groupBy
○ filter
● Stateful transformations
○ Windowing
○ Joins
○ Aggregations
@Im_flog
Ippon Technologies © 2017
Example
@Im_flog
https://github.com/ImFlog/kafka-playground
Ippon Technologies © 2017
Example
@Im_flog
Ippon Technologies © 2017
Start streaming
@Im_flog
Ippon Technologies © 2017
Under the hood, the “state store”
● Store / Query data
● Automatic with count / aggregations / windowing
● Use rocksDB by default
● Global state spread across stream applications
● Also resistant to failure
○ State can be rebuilt from a specific topic
○ Compacted so small footprint
@Im_flog
Ippon Technologies © 2017
Bonus : Interactive queries
@Im_flog
Ippon Technologies © 2017
Bonus : KSQL
● Manipulate streaming data with SQL
● Experimental
@Im_flog
Kafka from the trenches
Ippon Technologies © 2017
Basic setup
● Java 8
● RAM
● Unix systems
● Separate drives for
○ Operating System
○ Kafka logs
○ Zookeeper (or on another cluster)
@Im_flog
Ippon Technologies © 2017
Monitoring
● Not trivial
○ Cluster status
○ Topic health / lag
● JMX based
○ Replication
○ Broker status
○ Consumer / producer throughput
● Monitoring for Kafka and Zookeeper
@Im_flog
Ippon Technologies © 2017
Tools
● Monitoring:
○ Confluent Control Center ($)
○ SPM ($)
○ Burrow
● Management
○ Kafka Manager
○ Kafkat
@Im_flog
Ippon Technologies © 2017
Monitoring : Build your own
● Java monitoring agent on each broker
○ JMX collect and simple transform
○ Expose through HTTP
● Logstash for data ingestion
● Query through Elasticsearch
● Visualize in Kibana
@Im_flog
Conclusion
Ippon Technologies © 2017
10 commandments
1. Be kind with Zookeeper
2. Exactly once you will produce
3. Big messages you shall not push
4. Tune producer & consumer settings you will
5. Size your topics
6. Compress if you need to
7. Compaction you will consider
8. Monitor and do not overreact
9. You shall stream
10. Not a silver bullet you shall consider it
@Im_flog
Ippon Technologies © 2017
Ressources
● Examples
➔ https://github.com/ImFlog/kafka-playground
➔ https://github.com/confluentinc/examples
● Documentation
➔ http://docs.confluent.io/
➔ https://kafka.apache.org/
● Blogs / articles
➔ https://www.confluent.io/blog
➔ https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real
-time-datas-unifying
➔ https://cwiki.apache.org/confluence/display/KAFKA/KIP-98+-+Exactly+Once+Delivery+and+Transactional+Mess
aging
➔ https://zcox.wordpress.com/2017/01/16/updating-materialized-views-and-caches-using-kafka/
➔ https://technology.amis.nl/2017/02/12/apache-kafka-streams-running-top-n-grouped-by-dimension-from-and-t
o-kafka-topic/
@Im_flog
PARIS
BORDEAUX
NANTES
LYON
MARRAKECH
WASHINGTON DC
NEW-YORK
RICHMOND
MELBOURNE
contact@ippon.fr
www.ippon.fr - www.ippon-hosting.com - www.ippon-digital.fr
@ippontech
-
01 46 12 48 48

Contenu connexe

Tendances

Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache KafkaJeff Holoman
 
Apache Kafka
Apache KafkaApache Kafka
Apache KafkaJoe Stein
 
Architecture of a Kafka camus infrastructure
Architecture of a Kafka camus infrastructureArchitecture of a Kafka camus infrastructure
Architecture of a Kafka camus infrastructuremattlieber
 
Multi cluster, multitenant and hierarchical kafka messaging service slideshare
Multi cluster, multitenant and hierarchical kafka messaging service   slideshareMulti cluster, multitenant and hierarchical kafka messaging service   slideshare
Multi cluster, multitenant and hierarchical kafka messaging service slideshareAllen (Xiaozhong) Wang
 
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity PlanningFrom Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planningconfluent
 
Introduction to Apache Kafka- Part 1
Introduction to Apache Kafka- Part 1Introduction to Apache Kafka- Part 1
Introduction to Apache Kafka- Part 1Knoldus Inc.
 
An Introduction to Apache Kafka
An Introduction to Apache KafkaAn Introduction to Apache Kafka
An Introduction to Apache KafkaAmir Sedighi
 
Apache Kafka - Martin Podval
Apache Kafka - Martin PodvalApache Kafka - Martin Podval
Apache Kafka - Martin PodvalMartin Podval
 
Kafka Summit SF 2017 - Streaming Processing in Python – 10 ways to avoid summ...
Kafka Summit SF 2017 - Streaming Processing in Python – 10 ways to avoid summ...Kafka Summit SF 2017 - Streaming Processing in Python – 10 ways to avoid summ...
Kafka Summit SF 2017 - Streaming Processing in Python – 10 ways to avoid summ...confluent
 
Current and Future of Apache Kafka
Current and Future of Apache KafkaCurrent and Future of Apache Kafka
Current and Future of Apache KafkaJoe Stein
 
Introduction to Kafka and Zookeeper
Introduction to Kafka and ZookeeperIntroduction to Kafka and Zookeeper
Introduction to Kafka and ZookeeperRahul Jain
 
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...Amazon Web Services
 
Building Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache KafkaBuilding Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache KafkaGuozhang Wang
 
Reducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive StreamsReducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive Streamsjimriecken
 
Copy of Kafka-Camus
Copy of Kafka-CamusCopy of Kafka-Camus
Copy of Kafka-CamusDeep Shah
 
Apache Kafka: Next Generation Distributed Messaging System
Apache Kafka: Next Generation Distributed Messaging SystemApache Kafka: Next Generation Distributed Messaging System
Apache Kafka: Next Generation Distributed Messaging SystemEdureka!
 
Real time Messages at Scale with Apache Kafka and Couchbase
Real time Messages at Scale with Apache Kafka and CouchbaseReal time Messages at Scale with Apache Kafka and Couchbase
Real time Messages at Scale with Apache Kafka and CouchbaseWill Gardella
 

Tendances (20)

Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafka
 
Architecture of a Kafka camus infrastructure
Architecture of a Kafka camus infrastructureArchitecture of a Kafka camus infrastructure
Architecture of a Kafka camus infrastructure
 
Multi cluster, multitenant and hierarchical kafka messaging service slideshare
Multi cluster, multitenant and hierarchical kafka messaging service   slideshareMulti cluster, multitenant and hierarchical kafka messaging service   slideshare
Multi cluster, multitenant and hierarchical kafka messaging service slideshare
 
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity PlanningFrom Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
From Message to Cluster: A Realworld Introduction to Kafka Capacity Planning
 
Introduction to Apache Kafka- Part 1
Introduction to Apache Kafka- Part 1Introduction to Apache Kafka- Part 1
Introduction to Apache Kafka- Part 1
 
Apache Kafka at LinkedIn
Apache Kafka at LinkedInApache Kafka at LinkedIn
Apache Kafka at LinkedIn
 
An Introduction to Apache Kafka
An Introduction to Apache KafkaAn Introduction to Apache Kafka
An Introduction to Apache Kafka
 
Apache Kafka - Martin Podval
Apache Kafka - Martin PodvalApache Kafka - Martin Podval
Apache Kafka - Martin Podval
 
Kafka internals
Kafka internalsKafka internals
Kafka internals
 
Kafka Summit SF 2017 - Streaming Processing in Python – 10 ways to avoid summ...
Kafka Summit SF 2017 - Streaming Processing in Python – 10 ways to avoid summ...Kafka Summit SF 2017 - Streaming Processing in Python – 10 ways to avoid summ...
Kafka Summit SF 2017 - Streaming Processing in Python – 10 ways to avoid summ...
 
Current and Future of Apache Kafka
Current and Future of Apache KafkaCurrent and Future of Apache Kafka
Current and Future of Apache Kafka
 
Introduction to Kafka and Zookeeper
Introduction to Kafka and ZookeeperIntroduction to Kafka and Zookeeper
Introduction to Kafka and Zookeeper
 
Kafka blr-meetup-presentation - Kafka internals
Kafka blr-meetup-presentation - Kafka internalsKafka blr-meetup-presentation - Kafka internals
Kafka blr-meetup-presentation - Kafka internals
 
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
Infrastructure at Scale: Apache Kafka, Twitter Storm & Elastic Search (ARC303...
 
Building Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache KafkaBuilding Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache Kafka
 
Reducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive StreamsReducing Microservice Complexity with Kafka and Reactive Streams
Reducing Microservice Complexity with Kafka and Reactive Streams
 
Copy of Kafka-Camus
Copy of Kafka-CamusCopy of Kafka-Camus
Copy of Kafka-Camus
 
Apache Kafka: Next Generation Distributed Messaging System
Apache Kafka: Next Generation Distributed Messaging SystemApache Kafka: Next Generation Distributed Messaging System
Apache Kafka: Next Generation Distributed Messaging System
 
Real time Messages at Scale with Apache Kafka and Couchbase
Real time Messages at Scale with Apache Kafka and CouchbaseReal time Messages at Scale with Apache Kafka and Couchbase
Real time Messages at Scale with Apache Kafka and Couchbase
 

Similaire à A la rencontre de Kafka, le log distribué par Florian GARCIA

OpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPON
OpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPONOpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPON
OpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPONOpenNebula Project
 
Kafka on Pulsar:bringing native Kafka protocol support to Pulsar_Sijie&Pierre
Kafka on Pulsar:bringing native Kafka protocol support to Pulsar_Sijie&PierreKafka on Pulsar:bringing native Kafka protocol support to Pulsar_Sijie&Pierre
Kafka on Pulsar:bringing native Kafka protocol support to Pulsar_Sijie&PierreStreamNative
 
Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2aspyker
 
NetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmapNetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmapRuslan Meshenberg
 
Migrating batch ETLs to streaming Flink
Migrating batch ETLs to streaming FlinkMigrating batch ETLs to streaming Flink
Migrating batch ETLs to streaming FlinkWilliam Saar
 
Build real time stream processing applications using Apache Kafka
Build real time stream processing applications using Apache KafkaBuild real time stream processing applications using Apache Kafka
Build real time stream processing applications using Apache KafkaHotstar
 
Tips for Apache Flink on Kafka with Olena Babenko | Kafka Summit London 2022
Tips for Apache Flink on Kafka with Olena Babenko | Kafka Summit London 2022Tips for Apache Flink on Kafka with Olena Babenko | Kafka Summit London 2022
Tips for Apache Flink on Kafka with Olena Babenko | Kafka Summit London 2022HostedbyConfluent
 
LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2Linaro
 
Introducing Kafka-on-Pulsar: bring native Kafka protocol support to Apache Pu...
Introducing Kafka-on-Pulsar: bring native Kafka protocol support to Apache Pu...Introducing Kafka-on-Pulsar: bring native Kafka protocol support to Apache Pu...
Introducing Kafka-on-Pulsar: bring native Kafka protocol support to Apache Pu...StreamNative
 
Beaming flink to the cloud @ netflix ff 2016-monal-daxini
Beaming flink to the cloud @ netflix   ff 2016-monal-daxiniBeaming flink to the cloud @ netflix   ff 2016-monal-daxini
Beaming flink to the cloud @ netflix ff 2016-monal-daxiniMonal Daxini
 
Monal Daxini - Beaming Flink to the Cloud @ Netflix
Monal Daxini - Beaming Flink to the Cloud @ NetflixMonal Daxini - Beaming Flink to the Cloud @ Netflix
Monal Daxini - Beaming Flink to the Cloud @ NetflixFlink Forward
 
Structured Streaming with Kafka
Structured Streaming with KafkaStructured Streaming with Kafka
Structured Streaming with Kafkadatamantra
 
Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUp
Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUpStrimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUp
Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUpJosé Román Martín Gil
 
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...Athens Big Data
 
Uber Real Time Data Analytics
Uber Real Time Data AnalyticsUber Real Time Data Analytics
Uber Real Time Data AnalyticsAnkur Bansal
 
Free the Functions with Fn project!
Free the Functions with Fn project!Free the Functions with Fn project!
Free the Functions with Fn project!J On The Beach
 
PyCon HK 2018 - Heterogeneous job processing with Apache Kafka
PyCon HK 2018 - Heterogeneous job processing with Apache Kafka PyCon HK 2018 - Heterogeneous job processing with Apache Kafka
PyCon HK 2018 - Heterogeneous job processing with Apache Kafka Hua Chu
 
AIDevWorldApacheNiFi101
AIDevWorldApacheNiFi101AIDevWorldApacheNiFi101
AIDevWorldApacheNiFi101Timothy Spann
 
Apache Spark vs Apache Flink
Apache Spark vs Apache FlinkApache Spark vs Apache Flink
Apache Spark vs Apache FlinkAKASH SIHAG
 

Similaire à A la rencontre de Kafka, le log distribué par Florian GARCIA (20)

OpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPON
OpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPONOpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPON
OpenNebulaConf2017EU: IPP Cloud by Jimmy Goffaux, IPPON
 
Kafka on Pulsar:bringing native Kafka protocol support to Pulsar_Sijie&Pierre
Kafka on Pulsar:bringing native Kafka protocol support to Pulsar_Sijie&PierreKafka on Pulsar:bringing native Kafka protocol support to Pulsar_Sijie&Pierre
Kafka on Pulsar:bringing native Kafka protocol support to Pulsar_Sijie&Pierre
 
Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2
 
NetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmapNetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmap
 
Migrating batch ETLs to streaming Flink
Migrating batch ETLs to streaming FlinkMigrating batch ETLs to streaming Flink
Migrating batch ETLs to streaming Flink
 
Build real time stream processing applications using Apache Kafka
Build real time stream processing applications using Apache KafkaBuild real time stream processing applications using Apache Kafka
Build real time stream processing applications using Apache Kafka
 
Go at uber
Go at uberGo at uber
Go at uber
 
Tips for Apache Flink on Kafka with Olena Babenko | Kafka Summit London 2022
Tips for Apache Flink on Kafka with Olena Babenko | Kafka Summit London 2022Tips for Apache Flink on Kafka with Olena Babenko | Kafka Summit London 2022
Tips for Apache Flink on Kafka with Olena Babenko | Kafka Summit London 2022
 
LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2
 
Introducing Kafka-on-Pulsar: bring native Kafka protocol support to Apache Pu...
Introducing Kafka-on-Pulsar: bring native Kafka protocol support to Apache Pu...Introducing Kafka-on-Pulsar: bring native Kafka protocol support to Apache Pu...
Introducing Kafka-on-Pulsar: bring native Kafka protocol support to Apache Pu...
 
Beaming flink to the cloud @ netflix ff 2016-monal-daxini
Beaming flink to the cloud @ netflix   ff 2016-monal-daxiniBeaming flink to the cloud @ netflix   ff 2016-monal-daxini
Beaming flink to the cloud @ netflix ff 2016-monal-daxini
 
Monal Daxini - Beaming Flink to the Cloud @ Netflix
Monal Daxini - Beaming Flink to the Cloud @ NetflixMonal Daxini - Beaming Flink to the Cloud @ Netflix
Monal Daxini - Beaming Flink to the Cloud @ Netflix
 
Structured Streaming with Kafka
Structured Streaming with KafkaStructured Streaming with Kafka
Structured Streaming with Kafka
 
Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUp
Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUpStrimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUp
Strimzi - Where Apache Kafka meets OpenShift - OpenShift Spain MeetUp
 
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
14th Athens Big Data Meetup - Landoop Workshop - Apache Kafka Entering The St...
 
Uber Real Time Data Analytics
Uber Real Time Data AnalyticsUber Real Time Data Analytics
Uber Real Time Data Analytics
 
Free the Functions with Fn project!
Free the Functions with Fn project!Free the Functions with Fn project!
Free the Functions with Fn project!
 
PyCon HK 2018 - Heterogeneous job processing with Apache Kafka
PyCon HK 2018 - Heterogeneous job processing with Apache Kafka PyCon HK 2018 - Heterogeneous job processing with Apache Kafka
PyCon HK 2018 - Heterogeneous job processing with Apache Kafka
 
AIDevWorldApacheNiFi101
AIDevWorldApacheNiFi101AIDevWorldApacheNiFi101
AIDevWorldApacheNiFi101
 
Apache Spark vs Apache Flink
Apache Spark vs Apache FlinkApache Spark vs Apache Flink
Apache Spark vs Apache Flink
 

Plus de La Cuisine du Web

Kit de survie du marketeur au bois dormant – Digitalisation du marketing par ...
Kit de survie du marketeur au bois dormant – Digitalisation du marketing par ...Kit de survie du marketeur au bois dormant – Digitalisation du marketing par ...
Kit de survie du marketeur au bois dormant – Digitalisation du marketing par ...La Cuisine du Web
 
Objets connectés : adapter la technologie aux usages, et pas l’inverse ! par ...
Objets connectés : adapter la technologie aux usages, et pas l’inverse ! par ...Objets connectés : adapter la technologie aux usages, et pas l’inverse ! par ...
Objets connectés : adapter la technologie aux usages, et pas l’inverse ! par ...La Cuisine du Web
 
Manager l’innovation : est-ce contradictoire, pertinent, nécessaire ?… par Ma...
Manager l’innovation : est-ce contradictoire, pertinent, nécessaire ?… par Ma...Manager l’innovation : est-ce contradictoire, pertinent, nécessaire ?… par Ma...
Manager l’innovation : est-ce contradictoire, pertinent, nécessaire ?… par Ma...La Cuisine du Web
 
Tour d’horizon de l’écosystème React-ien par Guillaume BESSON
Tour d’horizon de l’écosystème React-ien par Guillaume BESSONTour d’horizon de l’écosystème React-ien par Guillaume BESSON
Tour d’horizon de l’écosystème React-ien par Guillaume BESSONLa Cuisine du Web
 
Stream processing en mémoire avec Hazelcast Jet par Claire VILLARD
Stream processing en mémoire avec Hazelcast Jet par Claire VILLARDStream processing en mémoire avec Hazelcast Jet par Claire VILLARD
Stream processing en mémoire avec Hazelcast Jet par Claire VILLARDLa Cuisine du Web
 
Programming is Fun par Francis BELLANGER
Programming is Fun par Francis BELLANGERProgramming is Fun par Francis BELLANGER
Programming is Fun par Francis BELLANGERLa Cuisine du Web
 
La démarche communautaire au coeur de la croissance de votre entreprise par H...
La démarche communautaire au coeur de la croissance de votre entreprise par H...La démarche communautaire au coeur de la croissance de votre entreprise par H...
La démarche communautaire au coeur de la croissance de votre entreprise par H...La Cuisine du Web
 
Qui est ton client ? par Audrey JULIENNE
Qui est ton client ? par Audrey JULIENNEQui est ton client ? par Audrey JULIENNE
Qui est ton client ? par Audrey JULIENNELa Cuisine du Web
 
Cloaking is not a crime par Patrick VALIBUS
Cloaking is not a crime par Patrick VALIBUSCloaking is not a crime par Patrick VALIBUS
Cloaking is not a crime par Patrick VALIBUSLa Cuisine du Web
 
Electron, une alternative intéressante ? par Florent MOIGNARD
Electron, une alternative intéressante ? par Florent MOIGNARDElectron, une alternative intéressante ? par Florent MOIGNARD
Electron, une alternative intéressante ? par Florent MOIGNARDLa Cuisine du Web
 
CSS orienté objet par Lenny ROUANET
CSS orienté objet par Lenny ROUANETCSS orienté objet par Lenny ROUANET
CSS orienté objet par Lenny ROUANETLa Cuisine du Web
 
Automatiser la mise en production d’un site web par Nicolas KANDEL
Automatiser la mise en production d’un site web par Nicolas KANDELAutomatiser la mise en production d’un site web par Nicolas KANDEL
Automatiser la mise en production d’un site web par Nicolas KANDELLa Cuisine du Web
 
Design Sprints : Créons un monde meilleur ! par Jelto VON SCHUCKMANN
Design Sprints : Créons un monde meilleur ! par Jelto VON SCHUCKMANNDesign Sprints : Créons un monde meilleur ! par Jelto VON SCHUCKMANN
Design Sprints : Créons un monde meilleur ! par Jelto VON SCHUCKMANNLa Cuisine du Web
 
Fontes variables, la matrice typographique par Malou VERLOMME
Fontes variables, la matrice typographique par Malou VERLOMMEFontes variables, la matrice typographique par Malou VERLOMME
Fontes variables, la matrice typographique par Malou VERLOMMELa Cuisine du Web
 
Le design agile : 6 techniques pour designer de façon plus agile par Matthieu...
Le design agile : 6 techniques pour designer de façon plus agile par Matthieu...Le design agile : 6 techniques pour designer de façon plus agile par Matthieu...
Le design agile : 6 techniques pour designer de façon plus agile par Matthieu...La Cuisine du Web
 
Réalité virtuelle et augmentée, ces nouvelles technologies au service de la f...
Réalité virtuelle et augmentée, ces nouvelles technologies au service de la f...Réalité virtuelle et augmentée, ces nouvelles technologies au service de la f...
Réalité virtuelle et augmentée, ces nouvelles technologies au service de la f...La Cuisine du Web
 
Audio procédural : la révolution WebAssembly ! par Yann ORLAREY
Audio procédural : la révolution WebAssembly ! par Yann ORLAREYAudio procédural : la révolution WebAssembly ! par Yann ORLAREY
Audio procédural : la révolution WebAssembly ! par Yann ORLAREYLa Cuisine du Web
 
Voyage au centre du cerveau humain ou comment manipuler des données binaires ...
Voyage au centre du cerveau humain ou comment manipuler des données binaires ...Voyage au centre du cerveau humain ou comment manipuler des données binaires ...
Voyage au centre du cerveau humain ou comment manipuler des données binaires ...La Cuisine du Web
 
Ciel mon smartphone ! par Damien GOSSET
Ciel mon smartphone ! par Damien GOSSETCiel mon smartphone ! par Damien GOSSET
Ciel mon smartphone ! par Damien GOSSETLa Cuisine du Web
 
Data Creativity, comment interpréter les tendances consommateurs grâce au Dat...
Data Creativity, comment interpréter les tendances consommateurs grâce au Dat...Data Creativity, comment interpréter les tendances consommateurs grâce au Dat...
Data Creativity, comment interpréter les tendances consommateurs grâce au Dat...La Cuisine du Web
 

Plus de La Cuisine du Web (20)

Kit de survie du marketeur au bois dormant – Digitalisation du marketing par ...
Kit de survie du marketeur au bois dormant – Digitalisation du marketing par ...Kit de survie du marketeur au bois dormant – Digitalisation du marketing par ...
Kit de survie du marketeur au bois dormant – Digitalisation du marketing par ...
 
Objets connectés : adapter la technologie aux usages, et pas l’inverse ! par ...
Objets connectés : adapter la technologie aux usages, et pas l’inverse ! par ...Objets connectés : adapter la technologie aux usages, et pas l’inverse ! par ...
Objets connectés : adapter la technologie aux usages, et pas l’inverse ! par ...
 
Manager l’innovation : est-ce contradictoire, pertinent, nécessaire ?… par Ma...
Manager l’innovation : est-ce contradictoire, pertinent, nécessaire ?… par Ma...Manager l’innovation : est-ce contradictoire, pertinent, nécessaire ?… par Ma...
Manager l’innovation : est-ce contradictoire, pertinent, nécessaire ?… par Ma...
 
Tour d’horizon de l’écosystème React-ien par Guillaume BESSON
Tour d’horizon de l’écosystème React-ien par Guillaume BESSONTour d’horizon de l’écosystème React-ien par Guillaume BESSON
Tour d’horizon de l’écosystème React-ien par Guillaume BESSON
 
Stream processing en mémoire avec Hazelcast Jet par Claire VILLARD
Stream processing en mémoire avec Hazelcast Jet par Claire VILLARDStream processing en mémoire avec Hazelcast Jet par Claire VILLARD
Stream processing en mémoire avec Hazelcast Jet par Claire VILLARD
 
Programming is Fun par Francis BELLANGER
Programming is Fun par Francis BELLANGERProgramming is Fun par Francis BELLANGER
Programming is Fun par Francis BELLANGER
 
La démarche communautaire au coeur de la croissance de votre entreprise par H...
La démarche communautaire au coeur de la croissance de votre entreprise par H...La démarche communautaire au coeur de la croissance de votre entreprise par H...
La démarche communautaire au coeur de la croissance de votre entreprise par H...
 
Qui est ton client ? par Audrey JULIENNE
Qui est ton client ? par Audrey JULIENNEQui est ton client ? par Audrey JULIENNE
Qui est ton client ? par Audrey JULIENNE
 
Cloaking is not a crime par Patrick VALIBUS
Cloaking is not a crime par Patrick VALIBUSCloaking is not a crime par Patrick VALIBUS
Cloaking is not a crime par Patrick VALIBUS
 
Electron, une alternative intéressante ? par Florent MOIGNARD
Electron, une alternative intéressante ? par Florent MOIGNARDElectron, une alternative intéressante ? par Florent MOIGNARD
Electron, une alternative intéressante ? par Florent MOIGNARD
 
CSS orienté objet par Lenny ROUANET
CSS orienté objet par Lenny ROUANETCSS orienté objet par Lenny ROUANET
CSS orienté objet par Lenny ROUANET
 
Automatiser la mise en production d’un site web par Nicolas KANDEL
Automatiser la mise en production d’un site web par Nicolas KANDELAutomatiser la mise en production d’un site web par Nicolas KANDEL
Automatiser la mise en production d’un site web par Nicolas KANDEL
 
Design Sprints : Créons un monde meilleur ! par Jelto VON SCHUCKMANN
Design Sprints : Créons un monde meilleur ! par Jelto VON SCHUCKMANNDesign Sprints : Créons un monde meilleur ! par Jelto VON SCHUCKMANN
Design Sprints : Créons un monde meilleur ! par Jelto VON SCHUCKMANN
 
Fontes variables, la matrice typographique par Malou VERLOMME
Fontes variables, la matrice typographique par Malou VERLOMMEFontes variables, la matrice typographique par Malou VERLOMME
Fontes variables, la matrice typographique par Malou VERLOMME
 
Le design agile : 6 techniques pour designer de façon plus agile par Matthieu...
Le design agile : 6 techniques pour designer de façon plus agile par Matthieu...Le design agile : 6 techniques pour designer de façon plus agile par Matthieu...
Le design agile : 6 techniques pour designer de façon plus agile par Matthieu...
 
Réalité virtuelle et augmentée, ces nouvelles technologies au service de la f...
Réalité virtuelle et augmentée, ces nouvelles technologies au service de la f...Réalité virtuelle et augmentée, ces nouvelles technologies au service de la f...
Réalité virtuelle et augmentée, ces nouvelles technologies au service de la f...
 
Audio procédural : la révolution WebAssembly ! par Yann ORLAREY
Audio procédural : la révolution WebAssembly ! par Yann ORLAREYAudio procédural : la révolution WebAssembly ! par Yann ORLAREY
Audio procédural : la révolution WebAssembly ! par Yann ORLAREY
 
Voyage au centre du cerveau humain ou comment manipuler des données binaires ...
Voyage au centre du cerveau humain ou comment manipuler des données binaires ...Voyage au centre du cerveau humain ou comment manipuler des données binaires ...
Voyage au centre du cerveau humain ou comment manipuler des données binaires ...
 
Ciel mon smartphone ! par Damien GOSSET
Ciel mon smartphone ! par Damien GOSSETCiel mon smartphone ! par Damien GOSSET
Ciel mon smartphone ! par Damien GOSSET
 
Data Creativity, comment interpréter les tendances consommateurs grâce au Dat...
Data Creativity, comment interpréter les tendances consommateurs grâce au Dat...Data Creativity, comment interpréter les tendances consommateurs grâce au Dat...
Data Creativity, comment interpréter les tendances consommateurs grâce au Dat...
 

Dernier

9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 DelhiCall Girls in Delhi
 
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best ServicesMysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best ServicesDipal Arora
 
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...noida100girls
 
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999Tina Ji
 
A DAY IN THE LIFE OF A SALESMAN / WOMAN
A DAY IN THE LIFE OF A  SALESMAN / WOMANA DAY IN THE LIFE OF A  SALESMAN / WOMAN
A DAY IN THE LIFE OF A SALESMAN / WOMANIlamathiKannappan
 
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Roland Driesen
 
Sales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for SuccessSales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for SuccessAggregage
 
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service AvailableCall Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service AvailableDipal Arora
 
Value Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsValue Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsP&CO
 
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
Keppel Ltd. 1Q 2024 Business Update  Presentation SlidesKeppel Ltd. 1Q 2024 Business Update  Presentation Slides
Keppel Ltd. 1Q 2024 Business Update Presentation SlidesKeppelCorporation
 
Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Roland Driesen
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.Aaiza Hassan
 
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...Any kyc Account
 
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdfRenandantas16
 
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779Delhi Call girls
 
Call Girls in Gomti Nagar - 7388211116 - With room Service
Call Girls in Gomti Nagar - 7388211116  - With room ServiceCall Girls in Gomti Nagar - 7388211116  - With room Service
Call Girls in Gomti Nagar - 7388211116 - With room Servicediscovermytutordmt
 
Cash Payment 9602870969 Escort Service in Udaipur Call Girls
Cash Payment 9602870969 Escort Service in Udaipur Call GirlsCash Payment 9602870969 Escort Service in Udaipur Call Girls
Cash Payment 9602870969 Escort Service in Udaipur Call GirlsApsara Of India
 
Event mailer assignment progress report .pdf
Event mailer assignment progress report .pdfEvent mailer assignment progress report .pdf
Event mailer assignment progress report .pdftbatkhuu1
 
Understanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key InsightsUnderstanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key Insightsseri bangash
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfPaul Menig
 

Dernier (20)

9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
 
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best ServicesMysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
 
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...
 
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999
 
A DAY IN THE LIFE OF A SALESMAN / WOMAN
A DAY IN THE LIFE OF A  SALESMAN / WOMANA DAY IN THE LIFE OF A  SALESMAN / WOMAN
A DAY IN THE LIFE OF A SALESMAN / WOMAN
 
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...
 
Sales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for SuccessSales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for Success
 
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service AvailableCall Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
 
Value Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and painsValue Proposition canvas- Customer needs and pains
Value Proposition canvas- Customer needs and pains
 
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
Keppel Ltd. 1Q 2024 Business Update  Presentation SlidesKeppel Ltd. 1Q 2024 Business Update  Presentation Slides
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
 
Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.
 
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
 
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
 
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
 
Call Girls in Gomti Nagar - 7388211116 - With room Service
Call Girls in Gomti Nagar - 7388211116  - With room ServiceCall Girls in Gomti Nagar - 7388211116  - With room Service
Call Girls in Gomti Nagar - 7388211116 - With room Service
 
Cash Payment 9602870969 Escort Service in Udaipur Call Girls
Cash Payment 9602870969 Escort Service in Udaipur Call GirlsCash Payment 9602870969 Escort Service in Udaipur Call Girls
Cash Payment 9602870969 Escort Service in Udaipur Call Girls
 
Event mailer assignment progress report .pdf
Event mailer assignment progress report .pdfEvent mailer assignment progress report .pdf
Event mailer assignment progress report .pdf
 
Understanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key InsightsUnderstanding the Pakistan Budgeting Process: Basics and Key Insights
Understanding the Pakistan Budgeting Process: Basics and Key Insights
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdf
 

A la rencontre de Kafka, le log distribué par Florian GARCIA

  • 1. Meet Kafka BWM- 27 octobre 2017 - Lyon “the distributed log”
  • 2. Ippon Technologies © 2017 Florian Garcia Software engineer at Ippon fgarcia@ippon.fr @Im_flog ● Backend lover ● Zipkin committer in spare time ● Interested in ○ Distributed tracing ○ Kafka ○ Docker ● Speaker
  • 3. Kafka ● Kafka who are you? ● Kafka use cases ● Kafka 101 ● Kafka Streams ● Kafka from the trenches
  • 5. Ippon Technologies © 2017 Linkedin before Kafka (pre 2010) @Im_flog
  • 6. Ippon Technologies © 2017 Linkedin after Kafka @Im_flog
  • 7. Ippon Technologies © 2017 ● Now a top level Apache project ○ Very active ○ Current release 0.11.0.X What about today ? ● Open sourced in 2011 ● Spinoff company Confluent created in 2014 ○ Jay Kreps, Neda Narkhede and Jun Rao ○ Ships the Confluent platform ○ Recently raised $50M in a round C funding @Im_flog
  • 8. Ippon Technologies © 2017 The metamorphosis ● Building a Kafka ecosystem ○ Kafka Connect ○ Schema Registry ○ Integrations ● A lot of new features regularly added ● From distributed log to a streaming platform ● End to end exactly once processing ! @Im_flog
  • 9. Ippon Technologies © 2017 Definitions ● Broker = a server running Kafka ● Topic = category where records are published ● Partition = shard of a topic ● Producer = client writing to Kafka ● Consumer = client reading from Kafka
  • 11. Ippon Technologies © 2017 Data deluge ● User activity ● Server info ● Messaging ● Business data consolidation ● Event sourcing @Im_flog
  • 12. Ippon Technologies © 2017 As a backbone @Im_flog
  • 13. Ippon Technologies © 2017 For event driven architectures @Im_flog
  • 14. Ippon Technologies © 2017 Streaming ! ● Process data as soon as they are available ! ● Powerful ● Easy to use ● Real time ○ decision ○ data consolidation ○ monitoring ○ fraud detection ○ … @Im_flog
  • 15. Ippon Technologies © 2017 But wait, I already bought an ESB ● ESB ○ complex logic ○ routing ○ processing ● Smart endpoints, dumb pipes ! ● Kafka justs transports the data @Im_flog ● Get rid of the ESB before you need to sell your children
  • 16. Ippon Technologies © 2017 But wait, I already use RabbitMQ ● RabbitMQ ○ Broker centric ○ Complex routing ○ Mature (Erlang) ○ Standardized (AMQP) ● Kafka ○ Consumer / producer centric ○ Ordered (per partition) ○ Higher performance ○ Backed by confluent @Im_flog
  • 17. Ippon Technologies © 2017 Who uses Kafka ? https://kafka.apache.org/powered-by @Im_flog
  • 19. Ippon Technologies © 2017 Kafka centric @Im_flog
  • 20. Ippon Technologies © 2017 ● A running Kafka service ● Role ○ Read / write on disk ○ Consumer / producer interface ○ Group balancing, leader election ● Uses Zookeeper for coordination Brokers @Im_flog
  • 21. Ippon Technologies © 2017 Topics and partitions @Im_flog
  • 22. Ippon Technologies © 2017 Message content ● RecordBatch ○ FirstOffset & LastOffsetDelta ○ FirstTimestamp & MaxTimestamp ○ MagicByte => 2 for version > 0.11.X ○ Records ● Record ○ Timestamp & Offset deltas ○ Key ○ Value ○ Headers @Im_flog
  • 23. Ippon Technologies © 2017 Compaction ● Keep only the last log for a given key ● Happens after a new segment creation by the log cleaner @Im_flog
  • 24. Ippon Technologies © 2017 Kafka guarantees @Im_flog
  • 25. Ippon Technologies © 2017 Kafka Clients ● Two low level libraries ○ Java ○ C/C++ (librdkafka) ● Clients built on top of librdkafka ○ C# ○ Go ○ Haskell ○ Python ○ … @Im_flog
  • 26. Ippon Technologies © 2017 Producing ● Send data to topics ● Binary content ● The key define the partition ● Send asynchronously ○ buffer pending records ○ batch records for efficiency ● Retry in case of failure @Im_flog
  • 27. Ippon Technologies © 2017 Consuming @Im_flog
  • 28. Ippon Technologies © 2016 Dataset - french opendata @Im_flog
  • 29. Ippon Technologies © 2017 Example : producer (settings) @Im_flog https://github.com/ImFlog/kafka-playground
  • 30. Ippon Technologies © 2017 Example : producer (without transactions) @Im_flog https://github.com/ImFlog/kafka-playground
  • 31. Ippon Technologies © 2017 Example producer (with transactions) @Im_flog https://github.com/ImFlog/kafka-playground
  • 32. Ippon Technologies © 2017 Exemple : consumer @Im_flog https://github.com/ImFlog/kafka-playground
  • 33. Ippon Technologies © 2017 Exemple : consumer https://github.com/ImFlog/kafka-playground @Im_flog
  • 34. Ippon Technologies © 2017 Kafka Connect ● Standardizes integration with other systems ○ Community connectors ○ Custom connectors ● Working modes ○ Distributed ○ Standalone ● Automatic offset management ● Distributed and scalable by default @Im_flog
  • 35. Ippon Technologies © 2017 Confluent platform additions ● Schema Registry ● REST Proxy ● Connector REST interface ($) ● Additional connectors ($) ● Kafka replicator ($) ● Support ($) @Im_flog
  • 36. Ippon Technologies © 2017 Performance @Im_flog
  • 38. Ippon Technologies © 2017 The goal Source www.confluent.io @Im_flog
  • 39. Ippon Technologies © 2017 Kafka streams ● Available since version 0.10.0 ● A simple and lightweight client library ● Event-at-a-time processing ● Millisecond latency ● Stateful processing ● Exactly once processing ! @Im_flog
  • 40. Ippon Technologies © 2017 Anatomy Source: Kafka documentation@Im_flog
  • 41. Ippon Technologies © 2017 KStream ● An abstraction of a record stream ○ Each data is an “insert” ○ No record replaces an existing row with the same key @Im_flog ● Example 1. ("Blend", 1) 2. ("Blend", 3) 3. Sum(“Blend”) = ? 4. Sum(“Blend”) = 4
  • 42. Ippon Technologies © 2017 KTable ● An abstraction of a changelog stream ○ Each data is an “upsert” ○ Based on the record key @Im_flog ● Example 1. ("Blend", 1) 2. ("Blend", 3) 3. Sum(“Blend”) = ? 4. Sum(“Blend”) = 3
  • 43. Ippon Technologies © 2017 For developers ● kafka-stream dependency ● A high level API ○ Use java 8 lambdas ○ Map, filter, join, ... ● A low level API ○ Add and connect processors ○ Interact directly with state stores ● KafkaStream ○ KStreamBuilder (high) / TopologyBuilder (low) ○ StreamsConfig ○ .start()@Im_flog
  • 44. Ippon Technologies © 2017 Operations ● Stateless transformations ○ map ○ groupBy ○ filter ● Stateful transformations ○ Windowing ○ Joins ○ Aggregations @Im_flog
  • 45. Ippon Technologies © 2017 Example @Im_flog https://github.com/ImFlog/kafka-playground
  • 46. Ippon Technologies © 2017 Example @Im_flog
  • 47. Ippon Technologies © 2017 Start streaming @Im_flog
  • 48. Ippon Technologies © 2017 Under the hood, the “state store” ● Store / Query data ● Automatic with count / aggregations / windowing ● Use rocksDB by default ● Global state spread across stream applications ● Also resistant to failure ○ State can be rebuilt from a specific topic ○ Compacted so small footprint @Im_flog
  • 49. Ippon Technologies © 2017 Bonus : Interactive queries @Im_flog
  • 50. Ippon Technologies © 2017 Bonus : KSQL ● Manipulate streaming data with SQL ● Experimental @Im_flog
  • 51. Kafka from the trenches
  • 52. Ippon Technologies © 2017 Basic setup ● Java 8 ● RAM ● Unix systems ● Separate drives for ○ Operating System ○ Kafka logs ○ Zookeeper (or on another cluster) @Im_flog
  • 53. Ippon Technologies © 2017 Monitoring ● Not trivial ○ Cluster status ○ Topic health / lag ● JMX based ○ Replication ○ Broker status ○ Consumer / producer throughput ● Monitoring for Kafka and Zookeeper @Im_flog
  • 54. Ippon Technologies © 2017 Tools ● Monitoring: ○ Confluent Control Center ($) ○ SPM ($) ○ Burrow ● Management ○ Kafka Manager ○ Kafkat @Im_flog
  • 55. Ippon Technologies © 2017 Monitoring : Build your own ● Java monitoring agent on each broker ○ JMX collect and simple transform ○ Expose through HTTP ● Logstash for data ingestion ● Query through Elasticsearch ● Visualize in Kibana @Im_flog
  • 57. Ippon Technologies © 2017 10 commandments 1. Be kind with Zookeeper 2. Exactly once you will produce 3. Big messages you shall not push 4. Tune producer & consumer settings you will 5. Size your topics 6. Compress if you need to 7. Compaction you will consider 8. Monitor and do not overreact 9. You shall stream 10. Not a silver bullet you shall consider it @Im_flog
  • 58. Ippon Technologies © 2017 Ressources ● Examples ➔ https://github.com/ImFlog/kafka-playground ➔ https://github.com/confluentinc/examples ● Documentation ➔ http://docs.confluent.io/ ➔ https://kafka.apache.org/ ● Blogs / articles ➔ https://www.confluent.io/blog ➔ https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real -time-datas-unifying ➔ https://cwiki.apache.org/confluence/display/KAFKA/KIP-98+-+Exactly+Once+Delivery+and+Transactional+Mess aging ➔ https://zcox.wordpress.com/2017/01/16/updating-materialized-views-and-caches-using-kafka/ ➔ https://technology.amis.nl/2017/02/12/apache-kafka-streams-running-top-n-grouped-by-dimension-from-and-t o-kafka-topic/ @Im_flog
  • 59. PARIS BORDEAUX NANTES LYON MARRAKECH WASHINGTON DC NEW-YORK RICHMOND MELBOURNE contact@ippon.fr www.ippon.fr - www.ippon-hosting.com - www.ippon-digital.fr @ippontech - 01 46 12 48 48