SlideShare ist ein Scribd-Unternehmen logo
1 von 59
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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...
 

Kürzlich hochgeladen

PHX May 2024 Corporate Presentation Final
PHX May 2024 Corporate Presentation FinalPHX May 2024 Corporate Presentation Final
PHX May 2024 Corporate Presentation FinalPanhandleOilandGas
 
New 2024 Cannabis Edibles Investor Pitch Deck Template
New 2024 Cannabis Edibles Investor Pitch Deck TemplateNew 2024 Cannabis Edibles Investor Pitch Deck Template
New 2024 Cannabis Edibles Investor Pitch Deck TemplateCannaBusinessPlans
 
Al Mizhar Dubai Escorts +971561403006 Escorts Service In Al Mizhar
Al Mizhar Dubai Escorts +971561403006 Escorts Service In Al MizharAl Mizhar Dubai Escorts +971561403006 Escorts Service In Al Mizhar
Al Mizhar Dubai Escorts +971561403006 Escorts Service In Al Mizharallensay1
 
Horngren’s Cost Accounting A Managerial Emphasis, Canadian 9th edition soluti...
Horngren’s Cost Accounting A Managerial Emphasis, Canadian 9th edition soluti...Horngren’s Cost Accounting A Managerial Emphasis, Canadian 9th edition soluti...
Horngren’s Cost Accounting A Managerial Emphasis, Canadian 9th edition soluti...ssuserf63bd7
 
Putting the SPARK into Virtual Training.pptx
Putting the SPARK into Virtual Training.pptxPutting the SPARK into Virtual Training.pptx
Putting the SPARK into Virtual Training.pptxCynthia Clay
 
JAJPUR CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN JAJPUR ESCORTS
JAJPUR CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN JAJPUR  ESCORTSJAJPUR CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN JAJPUR  ESCORTS
JAJPUR CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN JAJPUR ESCORTSkajalroy875762
 
Lucknow Housewife Escorts by Sexy Bhabhi Service 8250092165
Lucknow Housewife Escorts  by Sexy Bhabhi Service 8250092165Lucknow Housewife Escorts  by Sexy Bhabhi Service 8250092165
Lucknow Housewife Escorts by Sexy Bhabhi Service 8250092165meghakumariji156
 
Kalyan Call Girl 98350*37198 Call Girls in Escort service book now
Kalyan Call Girl 98350*37198 Call Girls in Escort service book nowKalyan Call Girl 98350*37198 Call Girls in Escort service book now
Kalyan Call Girl 98350*37198 Call Girls in Escort service book nowranineha57744
 
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...daisycvs
 
Challenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
Challenges and Opportunities: A Qualitative Study on Tax Compliance in PakistanChallenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
Challenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistanvineshkumarsajnani12
 
Uneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration PresentationUneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration Presentationuneakwhite
 
Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...
Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...
Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...pujan9679
 
GUWAHATI 💋 Call Girl 9827461493 Call Girls in Escort service book now
GUWAHATI 💋 Call Girl 9827461493 Call Girls in  Escort service book nowGUWAHATI 💋 Call Girl 9827461493 Call Girls in  Escort service book now
GUWAHATI 💋 Call Girl 9827461493 Call Girls in Escort service book nowkapoorjyoti4444
 
Falcon Invoice Discounting: Empowering Your Business Growth
Falcon Invoice Discounting: Empowering Your Business GrowthFalcon Invoice Discounting: Empowering Your Business Growth
Falcon Invoice Discounting: Empowering Your Business GrowthFalcon investment
 
Paradip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Paradip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDINGParadip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Paradip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDINGpr788182
 
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai KuwaitThe Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwaitdaisycvs
 
Berhampur Call Girl Just Call 8084732287 Top Class Call Girl Service Available
Berhampur Call Girl Just Call 8084732287 Top Class Call Girl Service AvailableBerhampur Call Girl Just Call 8084732287 Top Class Call Girl Service Available
Berhampur Call Girl Just Call 8084732287 Top Class Call Girl Service Availablepr788182
 
Berhampur CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Berhampur CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDINGBerhampur CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Berhampur CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDINGpr788182
 
Organizational Transformation Lead with Culture
Organizational Transformation Lead with CultureOrganizational Transformation Lead with Culture
Organizational Transformation Lead with CultureSeta Wicaksana
 

Kürzlich hochgeladen (20)

PHX May 2024 Corporate Presentation Final
PHX May 2024 Corporate Presentation FinalPHX May 2024 Corporate Presentation Final
PHX May 2024 Corporate Presentation Final
 
New 2024 Cannabis Edibles Investor Pitch Deck Template
New 2024 Cannabis Edibles Investor Pitch Deck TemplateNew 2024 Cannabis Edibles Investor Pitch Deck Template
New 2024 Cannabis Edibles Investor Pitch Deck Template
 
Al Mizhar Dubai Escorts +971561403006 Escorts Service In Al Mizhar
Al Mizhar Dubai Escorts +971561403006 Escorts Service In Al MizharAl Mizhar Dubai Escorts +971561403006 Escorts Service In Al Mizhar
Al Mizhar Dubai Escorts +971561403006 Escorts Service In Al Mizhar
 
Horngren’s Cost Accounting A Managerial Emphasis, Canadian 9th edition soluti...
Horngren’s Cost Accounting A Managerial Emphasis, Canadian 9th edition soluti...Horngren’s Cost Accounting A Managerial Emphasis, Canadian 9th edition soluti...
Horngren’s Cost Accounting A Managerial Emphasis, Canadian 9th edition soluti...
 
Putting the SPARK into Virtual Training.pptx
Putting the SPARK into Virtual Training.pptxPutting the SPARK into Virtual Training.pptx
Putting the SPARK into Virtual Training.pptx
 
Buy gmail accounts.pdf buy Old Gmail Accounts
Buy gmail accounts.pdf buy Old Gmail AccountsBuy gmail accounts.pdf buy Old Gmail Accounts
Buy gmail accounts.pdf buy Old Gmail Accounts
 
JAJPUR CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN JAJPUR ESCORTS
JAJPUR CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN JAJPUR  ESCORTSJAJPUR CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN JAJPUR  ESCORTS
JAJPUR CALL GIRL ❤ 82729*64427❤ CALL GIRLS IN JAJPUR ESCORTS
 
Lucknow Housewife Escorts by Sexy Bhabhi Service 8250092165
Lucknow Housewife Escorts  by Sexy Bhabhi Service 8250092165Lucknow Housewife Escorts  by Sexy Bhabhi Service 8250092165
Lucknow Housewife Escorts by Sexy Bhabhi Service 8250092165
 
Kalyan Call Girl 98350*37198 Call Girls in Escort service book now
Kalyan Call Girl 98350*37198 Call Girls in Escort service book nowKalyan Call Girl 98350*37198 Call Girls in Escort service book now
Kalyan Call Girl 98350*37198 Call Girls in Escort service book now
 
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
Quick Doctor In Kuwait +2773`7758`557 Kuwait Doha Qatar Dubai Abu Dhabi Sharj...
 
Challenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
Challenges and Opportunities: A Qualitative Study on Tax Compliance in PakistanChallenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
Challenges and Opportunities: A Qualitative Study on Tax Compliance in Pakistan
 
Uneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration PresentationUneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration Presentation
 
Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...
Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...
Ooty Call Gril 80022//12248 Only For Sex And High Profile Best Gril Sex Avail...
 
GUWAHATI 💋 Call Girl 9827461493 Call Girls in Escort service book now
GUWAHATI 💋 Call Girl 9827461493 Call Girls in  Escort service book nowGUWAHATI 💋 Call Girl 9827461493 Call Girls in  Escort service book now
GUWAHATI 💋 Call Girl 9827461493 Call Girls in Escort service book now
 
Falcon Invoice Discounting: Empowering Your Business Growth
Falcon Invoice Discounting: Empowering Your Business GrowthFalcon Invoice Discounting: Empowering Your Business Growth
Falcon Invoice Discounting: Empowering Your Business Growth
 
Paradip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Paradip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDINGParadip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Paradip CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
 
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai KuwaitThe Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
The Abortion pills for sale in Qatar@Doha [+27737758557] []Deira Dubai Kuwait
 
Berhampur Call Girl Just Call 8084732287 Top Class Call Girl Service Available
Berhampur Call Girl Just Call 8084732287 Top Class Call Girl Service AvailableBerhampur Call Girl Just Call 8084732287 Top Class Call Girl Service Available
Berhampur Call Girl Just Call 8084732287 Top Class Call Girl Service Available
 
Berhampur CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Berhampur CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDINGBerhampur CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
Berhampur CALL GIRL❤7091819311❤CALL GIRLS IN ESCORT SERVICE WE ARE PROVIDING
 
Organizational Transformation Lead with Culture
Organizational Transformation Lead with CultureOrganizational Transformation Lead with Culture
Organizational Transformation Lead with Culture
 

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