SlideShare a Scribd company logo
BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF
HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH
Apache Kafka
Scalable Message Processing and more!
Guido Schmutz - 24.4.2017
@gschmutz guidoschmutz.wordpress.com
Guido Schmutz
Working at Trivadis for more than 20 years
Oracle ACE Director for Fusion Middleware and SOA
Consultant, Trainer Software Architect for Java, Oracle, SOA and
Big Data / Fast Data
Member of Trivadis Architecture Board
Technology Manager @ Trivadis
More than 30 years of software development experience
Contact: guido.schmutz@trivadis.com
Blog: http://guidoschmutz.wordpress.com
Slideshare: http://www.slideshare.net/gschmutz
Twitter: gschmutz
Apache Kafka - Scalable Message Processing and more!
Agenda
1. Introduction & Motivation
2. Kafka Core
3. Kafka Connect
4. Kafka Streams
5. Kafka and "Big Data" / "Fast Data" Ecosystem
6. Kafka in Enterprise Architecture
7. Confluent Data Platform
8. Summary
Apache Kafka - Scalable Message Processing and more!
Introduction & Motivation
Apache Kafka - Scalable Message Processing and more!
Apache Kafka - Overview
Distributed publish-subscribe messaging system
Designed for processing of real time activity stream data (logs, metrics
collections, social media streams, …)
Initially developed at LinkedIn, now part of Apache
Does not use JMS API and standards
Kafka maintains feeds of messages in topics
Apache Kafka - Scalable Message Processing and more!
Apache Kafka - Motivation
LinkedIn’s motivation for Kafka was:
• "A unified platform for handling all the real-time data feeds a large company might
have."
Must haves
• High throughput to support high volume event feeds
• Support real-time processing of these feeds to create new, derived feeds.
• Support large data backlogs to handle periodic ingestion from offline systems
• Support low-latency delivery to handle more traditional messaging use cases
• Guarantee fault-tolerance in the presence of machine failures
Apache Kafka - Scalable Message Processing and more!
Apache Kafka History
Apache Kafka - Scalable Message Processing and more!
Source:	Confluent
Apache Kafka - Unix Analogy
Apache Kafka - Scalable Message Processing and more!
$ cat < in.txt | grep "kafka" | tr a-z A-Z > out.txt
Kafka	Connect	API Kafka	Connect	APIKafka	Streams	API
Kafka	Core	(Cluster)
Source:	Confluent
Kafka Core
Apache Kafka - Scalable Message Processing and more!
Kafka High Level Architecture
The who is who
• Producers write data to brokers.
• Consumers read data from
brokers.
• All this is distributed.
The data
• Data is stored in topics.
• Topics are split into partitions,
which are replicated.
Kafka Cluster
Consumer Consumer Consumer
Producer Producer Producer
Broker 1 Broker 2 Broker 3
Zookeeper
Ensemble
Apache Kafka - Scalable Message Processing and more!
Apache Kafka - Architecture
Kafka Broker
Movement
Processor
Movement	Topic
Engine-Metrics	Topic
1 2 3 4 5 6
Engine
Processor1 2 3 4 5 6
Truck
Apache Kafka - Scalable Message Processing and more!
Apache Kafka - Architecture
Kafka Broker
Movement
Processor
Movement	Topic
Engine-Metrics	Topic
1 2 3 4 5 6
Engine
Processor
Partition	0
1 2 3 4 5 6
Partition	0
1 2 3 4 5 6
Partition	1 Movement
Processor
Truck
Apache Kafka - Scalable Message Processing and more!
Apache
Kafka
Kafka Broker 1
Movement
Processor
Truck
Movement	Topic
P	0
Movement
Processor
1 2 3 4 5
P	2 1 2 3 4 5
Kafka Broker 2
Movement	Topic
P	2 1 2 3 4 5
P	1 1 2 3 4 5
Kafka Broker 3
Movement	Topic
P	0 1 2 3 4 5
P	1 1 2 3 4 5
Movement
Processor
Apache Kafka - Architecture
• Write Ahead Log / Commit Log
• Producers always append to tail
• think append to file
Kafka Broker
Movement	Topic
1 2 3 4 5
Truck
6 6
Apache Kafka - Scalable Message Processing and more!
Kafka Topics
Creating a topic
• Command line interface
• Using AdminUtils.createTopic method
• Auto-create via auto.create.topics.enable = true
Modifying a topic
https://kafka.apache.org/documentation.html#basic_ops_modify_topic
Deleting a topic
• Command Line interface
$ kafka-topics.sh –zookeeper zk1:2181 --create 
--topic my.topic –-partitions 3 
–-replication-factor 2 --config x=y
Apache Kafka - Scalable Message Processing and more!
Kafka Producer
Apache Kafka - Scalable Message Processing and more!
private Properties kafkaProps = new Properties();
kafkaProps.put("bootstrap.servers","broker1:9092,broker2:9092");
kafkaProps.put("key.serializer", "...StringSerializer");
kafkaProps.put("value.serializer", "...StringSerializer");
producer = new KafkaProducer<String, String>(kafkaProps);
ProducerRecord<String, String> record =
new ProducerRecord<>(”topicName", ”Key", ”Value");
try {
producer.send(record);
} catch (Exception e) {}
Durability Guarantees
Producer can configure acknowledgements
Apache Kafka - Scalable Message Processing and more!
Value Description Throughput Latency Durability
0 • Producer	doesn’t	wait	for	leader high low low (no	
guarantee)
1	
(default)
• Producer	waits	for	leader
• Leader	sends ack when	message	
written	to	log
• No	wait	for	followers
medium medium medium	
(leader)
all	(-1) • Producer	waits	for	leader
• Leader	sends	ack when all	In-Sync	
Replica	have	acknowledged
low high high	(ISR)
Apache Kafka - Partition offsets
Offset: messages in the partitions are each assigned a unique (per partition) and
sequential id called the offset
• Consumers track their pointers via (offset, partition, topic) tuples
Consumer	Group	A Consumer	Group	B
Apache Kafka - Scalable Message Processing and more!
Source:	Apache	Kafka
Data Retention – 3 options
1. Never
2. Time based (TTL)
log.retention.{ms | minutes | hours}
3. Size based
log.retention.bytes
4. Log compaction based (entries with same key are removed)
kafka-topics.sh --zookeeper localhost:2181 
--create --topic customers 
--replication-factor 1 --partitions 1 
--config cleanup.policy=compact
Apache Kafka - Scalable Message Processing and more!
Apache Kafka – Some numbers
Kafka at LinkedIn => over 1800+ broker machines / 79K+ Topics
Kafka Performance at our own infrastructure => 6 brokers (VM) / 1 cluster
• 445’622 messages/second
• 31 MB / second
• 3.0405 ms average latency between producer / consumer
1.3	Trillion	messages	per	
day
330	Terabytes	in/day
1.2	Petabytes	out/day
Peak	load	for	a	single	cluster
2	million	messages/sec
4.7	Gigabits/sec	inbound
15	Gigabits/sec	outbound
http://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines
https://engineering.linkedin.com/kafka/running-kafka-scale
Apache Kafka - Scalable Message Processing and more!
Kafka Connect
Apache Kafka - Scalable Message Processing and more!
Kafka Connect Architecture
Apache Kafka - Scalable Message Processing and more!
Source:	Confluent
Kafka Connector Hub – Certified Connectors
Source:	http://www.confluent.io/product/connectors
Apache Kafka - Scalable Message Processing and more!
Kafka Connector Hub – Additional Connectors
Source:	http://www.confluent.io/product/connectors
Apache Kafka - Scalable Message Processing and more!
Kafka Connect – Twitter example
Apache Kafka - Scalable Message Processing and more!
./connect-standalone.sh ../demo-config/connect-simple-source-standalone.properties
../demo-config/twitter-source.properties
name=twitter-source
connector.class=com.eneco.trading.kafka.connect.twitter.TwitterSourceConnector
tasks.max=1
topic=tweets
twitter.consumerkey=<consumer-key>
twitter.consumersecret=<consumer-secret>
twitter.token=<token>
twitter.secret=<token-secret>
track.terms=bigdata
bootstrap.servers=localhost:9095,localhost:9096,localhost:9097
key.converter=org.apache.kafka.connect.storage.StringConverter
value.converter=org.apache.kafka.connect.storage.StringConverter
...
Kafka Streams
Apache Kafka - Scalable Message Processing and more!
Kafka Streams
• Designed as a simple and lightweight library in Apache
Kafka
• no external dependencies on systems other than Apache
Kafka
• Part of open source Apache Kafka, introduced in 0.10+
• Leverages Kafka as its internal messaging layer
• agnostic to resource management and configuration tools
• Supports fault-tolerant local state
• Event-at-a-time processing (not microbatch) with millisecond
latency
• Windowing with out-of-order data using a Google DataFlow-like
model
Apache Kafka - Scalable Message Processing and more!
Streams API in the context of Kafka
Apache Kafka - Scalable Message Processing and more!
Source:	Confluent
Kafka and "Big Data" / "Fast Data"
Ecosystem
Apache Kafka - Scalable Message Processing and more!
Kafka and the Big Data / Fast Data ecosystem
Kafka integrates with many popular
products / frameworks
• Apache Spark Streaming
• Apache Flink
• Apache Storm
• Apache NiFi
• Streamsets
• Apache Flume
• Oracle Stream Analytics
• Oracle Service Bus
• Oracle GoldenGate
• Spring Integration Kafka Support
• …Storm	built-in	Kafka	Spout	to	consume	events	from	Kafka
Apache Kafka - Scalable Message Processing and more!
Kafka in “Enterprise Architecture”
Apache Kafka - Scalable Message Processing and more!
Hadoop Clusterd
Hadoop Cluster
Big Data Cluster
Traditional Big Data Architecture
BI	Tools
Enterprise Data
Warehouse
Billing &
Ordering
CRM /
Profile
Marketing
Campaigns
File Import / SQL Import
SQL
Search
Online	&	Mobile	
Apps
Search
NoSQL
Parallel Batch
Processing
Distributed
Filesystem
• Machine	Learning
• Graph	Algorithms
• Natural	Language	Processing
Apache Kafka - Scalable Message Processing and more!
Event
Hub
Event
Hub
Hadoop Clusterd
Hadoop Cluster
Big Data Cluster
Event Hub – handle event stream data
BI	Tools
Enterprise Data
Warehouse
Location
Social
Click
stream
Sensor
Data
Billing &
Ordering
CRM /
Profile
Marketing
Campaigns
Event
Hub
Call
Center
Weather
Data
Mobile
Apps
SQL
Search
Online	&	Mobile	
Apps
Search
Data Flow
NoSQL
Parallel Batch
Processing
Distributed
Filesystem
• Machine	Learning
• Graph	Algorithms
• Natural	Language	Processing
Hadoop Clusterd
Hadoop Cluster
Big Data Cluster
Event Hub – taking Velocity into account
Location
Social
Click
stream
Sensor
Data
Billing &
Ordering
CRM /
Profile
Marketing
Campaigns
Call
Center
Mobile
Apps
Batch Analytics
Streaming Analytics
Event
Hub
Event
Hub
Event
Hub
NoSQL
Parallel Batch
Processing
Distributed
Filesystem
Stream Analytics
NoSQL
Reference /
Models
SQL
Search
Dashboard
BI	Tools
Enterprise Data
Warehouse
Search
Online	&	Mobile	
Apps
File Import / SQL Import
Weather
Data
Apache Kafka - Scalable Message Processing and more!
Container
Hadoop Clusterd
Hadoop Cluster
Big Data Cluster
Event Hub – Asynchronous Microservice Architecture
Location
Social
Click
stream
Sensor
Data
Billing &
Ordering
CRM /
Profile
Marketing
Campaigns
Call
Center
Mobile
Apps
Event
Hub
Event
Hub
Event
Hub
Parallel
Batch
ProcessingDistributed
Filesystem
Microservice
NoSQLRDBMS
SQL
Search
BI	Tools
Enterprise Data
Warehouse
Search
Online	&	Mobile	
Apps
File Import / SQL Import
Weather
Data
Apache Kafka - Scalable Message Processing and more!
{		}
API
Confluent Platform
Apache Kafka - Scalable Message Processing and more!
Confluent Data Platform 3.2
Apache Kafka - Scalable Message Processing and more!
Source:	Confluent
Confluent Data Platform 3.2
Apache Kafka - Scalable Message Processing and more!
Source:	Confluent
Confluent Enterprise – Control Center
Apache Kafka - Scalable Message Processing and more!
Source:	Confluent
Summary
Apache Kafka - Scalable Message Processing and more!
Summary
• Kafka can scale to millions of messages per second, and more
• Easy to start in a Proof of Concept (PoC), but more to invest to setup a production
environment
• Monitoring is key
• Vibrant community and ecosystem
• Fast paced technology
• Confluent provides distribution and support for Apache Kafka
•
Oracle Event Hub Service offers a Kafka Managed Service
Apache Kafka - Scalable Message Processing and more!
Weather
Data
SQL Import
Hadoop Clusterd
Hadoop Cluster
Hadoop Cluster
Location
Social
Click
stream
Sensor
Data
Billing &
Ordering
CRM /
Profile
Marketing
Campaigns
Call
Center
Mobile
Apps
Batch Analytics
Streaming Analytics
Event
Hub
Event
Hub
Event
Hub
NoSQL
Parallel
Processing
Distributed
Filesystem
Stream Analytics
NoSQL
Reference /
Models
SQL
Search
Dashboard
BI	Tools
Enterprise Data
Warehouse
Search
Online	&	Mobile	
Apps
Customer Event Hub – mapping of technologies
Apache Kafka - Scalable Message Processing and more!
Guido Schmutz
Technology Manager
guido.schmutz@trivadis.com
Apache Kafka - Scalable Message Processing and more!
@gschmutz guidoschmutz.wordpress.com

More Related Content

PDF
Apache Kafka - Scalable Message Processing and more!
PDF
Apache Kafka - Scalable Message-Processing and more !
PDF
Apache Kafka - Scalable Message-Processing and more !
PDF
Apache Kafka - Scalable Message Processing and more!
PDF
Apache Kafka Scalable Message Processing and more!
PDF
Apache Kafka - Scalable Message-Processing and more !
PDF
Introduction to Stream Processing
PDF
Building event-driven (Micro)Services with Apache Kafka Ecosystem
Apache Kafka - Scalable Message Processing and more!
Apache Kafka - Scalable Message-Processing and more !
Apache Kafka - Scalable Message-Processing and more !
Apache Kafka - Scalable Message Processing and more!
Apache Kafka Scalable Message Processing and more!
Apache Kafka - Scalable Message-Processing and more !
Introduction to Stream Processing
Building event-driven (Micro)Services with Apache Kafka Ecosystem

What's hot (20)

PDF
Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...
PDF
Kafka Connect & Kafka Streams/KSQL - powerful ecosystem around Kafka core
PDF
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
PDF
Webinar | Better Together: Apache Cassandra and Apache Kafka
PPTX
Kafka for data scientists
PDF
Ingesting streaming data into Graph Database
PDF
Streaming Visualization
PDF
Simplify Governance of Streaming Data
PDF
Evolving from Messaging to Event Streaming
PDF
Apache Kafka + Apache Mesos + Kafka Streams - Highly Scalable Streaming Micro...
PDF
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
PDF
Kafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
PDF
Writing Blazing Fast, and Production-Ready Kafka Streams apps in less than 30...
PDF
8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...
PDF
dotScale 2017 Keynote: The Rise of Real Time by Neha Narkhede
PDF
Event-Driven Stream Processing and Model Deployment with Apache Kafka, Kafka ...
PDF
Partner Development Guide for Kafka Connect
PDF
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
PDF
Introduction to Stream Processing
PDF
Microservices with Kafka Ecosystem
Spark (Structured) Streaming vs. Kafka Streams - two stream processing platfo...
Kafka Connect & Kafka Streams/KSQL - powerful ecosystem around Kafka core
Apache Kafka - Event Sourcing, Monitoring, Librdkafka, Scaling & Partitioning
Webinar | Better Together: Apache Cassandra and Apache Kafka
Kafka for data scientists
Ingesting streaming data into Graph Database
Streaming Visualization
Simplify Governance of Streaming Data
Evolving from Messaging to Event Streaming
Apache Kafka + Apache Mesos + Kafka Streams - Highly Scalable Streaming Micro...
Self-Service Data Ingestion Using NiFi, StreamSets & Kafka
Kafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
Writing Blazing Fast, and Production-Ready Kafka Streams apps in less than 30...
8 Lessons Learned from Using Kafka in 1000 Scala microservices - Scale by the...
dotScale 2017 Keynote: The Rise of Real Time by Neha Narkhede
Event-Driven Stream Processing and Model Deployment with Apache Kafka, Kafka ...
Partner Development Guide for Kafka Connect
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Introduction to Stream Processing
Microservices with Kafka Ecosystem
Ad

Similar to Apache Kafka - Scalable Message-Processing and more ! (20)

PDF
Trivadis TechEvent 2016 Apache Kafka - Scalable Massage Processing and more! ...
PDF
Kafka Connect & Streams - the ecosystem around Kafka
PPTX
Real-Time Log Analysis with Apache Mesos, Kafka and Cassandra
PDF
What is apache Kafka?
PDF
What is Apache Kafka®?
PDF
Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)
PDF
[Big Data Spain] Apache Spark Streaming + Kafka 0.10: an Integration Story
PDF
Apache Kafka - A modern Stream Processing Platform
PDF
Connecting Apache Kafka With Mule ESB
PDF
Kafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
PDF
Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020
PDF
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
PDF
Spark streaming + kafka 0.10
PPTX
Training
PDF
Jug - ecosystem
PPT
Kafka Explainaton
PDF
Chti jug - 2018-06-26
PDF
Python Kafka Integration: Developers Guide
PDF
Spark (Structured) Streaming vs. Kafka Streams
PDF
ApacheCon2022_Deep Dive into Building Streaming Applications with Apache Pulsar
Trivadis TechEvent 2016 Apache Kafka - Scalable Massage Processing and more! ...
Kafka Connect & Streams - the ecosystem around Kafka
Real-Time Log Analysis with Apache Mesos, Kafka and Cassandra
What is apache Kafka?
What is Apache Kafka®?
Confluent REST Proxy and Schema Registry (Concepts, Architecture, Features)
[Big Data Spain] Apache Spark Streaming + Kafka 0.10: an Integration Story
Apache Kafka - A modern Stream Processing Platform
Connecting Apache Kafka With Mule ESB
Kafka Connect & Kafka Streams/KSQL - the ecosystem around Kafka
Welcome to Kafka; We’re Glad You’re Here (Dave Klein, Centene) Kafka Summit 2020
Big Data Open Source Security LLC: Realtime log analysis with Mesos, Docker, ...
Spark streaming + kafka 0.10
Training
Jug - ecosystem
Kafka Explainaton
Chti jug - 2018-06-26
Python Kafka Integration: Developers Guide
Spark (Structured) Streaming vs. Kafka Streams
ApacheCon2022_Deep Dive into Building Streaming Applications with Apache Pulsar
Ad

More from Guido Schmutz (20)

PDF
30 Minutes to the Analytics Platform with Infrastructure as Code
PDF
Event Broker (Kafka) in a Modern Data Architecture
PDF
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
PDF
ksqlDB - Stream Processing simplified!
PDF
Kafka as your Data Lake - is it Feasible?
PDF
Event Hub (i.e. Kafka) in Modern Data Architecture
PDF
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
PDF
Event Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
PDF
Building Event Driven (Micro)services with Apache Kafka
PDF
Location Analytics - Real-Time Geofencing using Apache Kafka
PDF
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka
PDF
What is Apache Kafka? Why is it so popular? Should I use it?
PDF
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
PDF
Location Analytics Real-Time Geofencing using Kafka
PDF
Streaming Visualisation
PDF
Kafka as an event store - is it good enough?
PDF
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
PDF
Fundamentals Big Data and AI Architecture
PDF
Location Analytics - Real-Time Geofencing using Kafka
PDF
Streaming Visualization
30 Minutes to the Analytics Platform with Infrastructure as Code
Event Broker (Kafka) in a Modern Data Architecture
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
ksqlDB - Stream Processing simplified!
Kafka as your Data Lake - is it Feasible?
Event Hub (i.e. Kafka) in Modern Data Architecture
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Event Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Building Event Driven (Micro)services with Apache Kafka
Location Analytics - Real-Time Geofencing using Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka
What is Apache Kafka? Why is it so popular? Should I use it?
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Location Analytics Real-Time Geofencing using Kafka
Streaming Visualisation
Kafka as an event store - is it good enough?
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Fundamentals Big Data and AI Architecture
Location Analytics - Real-Time Geofencing using Kafka
Streaming Visualization

Recently uploaded (20)

PPTX
Introduction to Artificial Intelligence
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PPTX
history of c programming in notes for students .pptx
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
System and Network Administration Chapter 2
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
AI in Product Development-omnex systems
PDF
System and Network Administraation Chapter 3
PPTX
L1 - Introduction to python Backend.pptx
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
top salesforce developer skills in 2025.pdf
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Introduction to Artificial Intelligence
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Which alternative to Crystal Reports is best for small or large businesses.pdf
history of c programming in notes for students .pptx
How Creative Agencies Leverage Project Management Software.pdf
Navsoft: AI-Powered Business Solutions & Custom Software Development
System and Network Administration Chapter 2
Operating system designcfffgfgggggggvggggggggg
AI in Product Development-omnex systems
System and Network Administraation Chapter 3
L1 - Introduction to python Backend.pptx
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
top salesforce developer skills in 2025.pdf
Softaken Excel to vCard Converter Software.pdf
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx

Apache Kafka - Scalable Message-Processing and more !

  • 1. BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH Apache Kafka Scalable Message Processing and more! Guido Schmutz - 24.4.2017 @gschmutz guidoschmutz.wordpress.com
  • 2. Guido Schmutz Working at Trivadis for more than 20 years Oracle ACE Director for Fusion Middleware and SOA Consultant, Trainer Software Architect for Java, Oracle, SOA and Big Data / Fast Data Member of Trivadis Architecture Board Technology Manager @ Trivadis More than 30 years of software development experience Contact: guido.schmutz@trivadis.com Blog: http://guidoschmutz.wordpress.com Slideshare: http://www.slideshare.net/gschmutz Twitter: gschmutz Apache Kafka - Scalable Message Processing and more!
  • 3. Agenda 1. Introduction & Motivation 2. Kafka Core 3. Kafka Connect 4. Kafka Streams 5. Kafka and "Big Data" / "Fast Data" Ecosystem 6. Kafka in Enterprise Architecture 7. Confluent Data Platform 8. Summary Apache Kafka - Scalable Message Processing and more!
  • 4. Introduction & Motivation Apache Kafka - Scalable Message Processing and more!
  • 5. Apache Kafka - Overview Distributed publish-subscribe messaging system Designed for processing of real time activity stream data (logs, metrics collections, social media streams, …) Initially developed at LinkedIn, now part of Apache Does not use JMS API and standards Kafka maintains feeds of messages in topics Apache Kafka - Scalable Message Processing and more!
  • 6. Apache Kafka - Motivation LinkedIn’s motivation for Kafka was: • "A unified platform for handling all the real-time data feeds a large company might have." Must haves • High throughput to support high volume event feeds • Support real-time processing of these feeds to create new, derived feeds. • Support large data backlogs to handle periodic ingestion from offline systems • Support low-latency delivery to handle more traditional messaging use cases • Guarantee fault-tolerance in the presence of machine failures Apache Kafka - Scalable Message Processing and more!
  • 7. Apache Kafka History Apache Kafka - Scalable Message Processing and more! Source: Confluent
  • 8. Apache Kafka - Unix Analogy Apache Kafka - Scalable Message Processing and more! $ cat < in.txt | grep "kafka" | tr a-z A-Z > out.txt Kafka Connect API Kafka Connect APIKafka Streams API Kafka Core (Cluster) Source: Confluent
  • 9. Kafka Core Apache Kafka - Scalable Message Processing and more!
  • 10. Kafka High Level Architecture The who is who • Producers write data to brokers. • Consumers read data from brokers. • All this is distributed. The data • Data is stored in topics. • Topics are split into partitions, which are replicated. Kafka Cluster Consumer Consumer Consumer Producer Producer Producer Broker 1 Broker 2 Broker 3 Zookeeper Ensemble Apache Kafka - Scalable Message Processing and more!
  • 11. Apache Kafka - Architecture Kafka Broker Movement Processor Movement Topic Engine-Metrics Topic 1 2 3 4 5 6 Engine Processor1 2 3 4 5 6 Truck Apache Kafka - Scalable Message Processing and more!
  • 12. Apache Kafka - Architecture Kafka Broker Movement Processor Movement Topic Engine-Metrics Topic 1 2 3 4 5 6 Engine Processor Partition 0 1 2 3 4 5 6 Partition 0 1 2 3 4 5 6 Partition 1 Movement Processor Truck Apache Kafka - Scalable Message Processing and more!
  • 13. Apache Kafka Kafka Broker 1 Movement Processor Truck Movement Topic P 0 Movement Processor 1 2 3 4 5 P 2 1 2 3 4 5 Kafka Broker 2 Movement Topic P 2 1 2 3 4 5 P 1 1 2 3 4 5 Kafka Broker 3 Movement Topic P 0 1 2 3 4 5 P 1 1 2 3 4 5 Movement Processor
  • 14. Apache Kafka - Architecture • Write Ahead Log / Commit Log • Producers always append to tail • think append to file Kafka Broker Movement Topic 1 2 3 4 5 Truck 6 6 Apache Kafka - Scalable Message Processing and more!
  • 15. Kafka Topics Creating a topic • Command line interface • Using AdminUtils.createTopic method • Auto-create via auto.create.topics.enable = true Modifying a topic https://kafka.apache.org/documentation.html#basic_ops_modify_topic Deleting a topic • Command Line interface $ kafka-topics.sh –zookeeper zk1:2181 --create --topic my.topic –-partitions 3 –-replication-factor 2 --config x=y Apache Kafka - Scalable Message Processing and more!
  • 16. Kafka Producer Apache Kafka - Scalable Message Processing and more! private Properties kafkaProps = new Properties(); kafkaProps.put("bootstrap.servers","broker1:9092,broker2:9092"); kafkaProps.put("key.serializer", "...StringSerializer"); kafkaProps.put("value.serializer", "...StringSerializer"); producer = new KafkaProducer<String, String>(kafkaProps); ProducerRecord<String, String> record = new ProducerRecord<>(”topicName", ”Key", ”Value"); try { producer.send(record); } catch (Exception e) {}
  • 17. Durability Guarantees Producer can configure acknowledgements Apache Kafka - Scalable Message Processing and more! Value Description Throughput Latency Durability 0 • Producer doesn’t wait for leader high low low (no guarantee) 1 (default) • Producer waits for leader • Leader sends ack when message written to log • No wait for followers medium medium medium (leader) all (-1) • Producer waits for leader • Leader sends ack when all In-Sync Replica have acknowledged low high high (ISR)
  • 18. Apache Kafka - Partition offsets Offset: messages in the partitions are each assigned a unique (per partition) and sequential id called the offset • Consumers track their pointers via (offset, partition, topic) tuples Consumer Group A Consumer Group B Apache Kafka - Scalable Message Processing and more! Source: Apache Kafka
  • 19. Data Retention – 3 options 1. Never 2. Time based (TTL) log.retention.{ms | minutes | hours} 3. Size based log.retention.bytes 4. Log compaction based (entries with same key are removed) kafka-topics.sh --zookeeper localhost:2181 --create --topic customers --replication-factor 1 --partitions 1 --config cleanup.policy=compact Apache Kafka - Scalable Message Processing and more!
  • 20. Apache Kafka – Some numbers Kafka at LinkedIn => over 1800+ broker machines / 79K+ Topics Kafka Performance at our own infrastructure => 6 brokers (VM) / 1 cluster • 445’622 messages/second • 31 MB / second • 3.0405 ms average latency between producer / consumer 1.3 Trillion messages per day 330 Terabytes in/day 1.2 Petabytes out/day Peak load for a single cluster 2 million messages/sec 4.7 Gigabits/sec inbound 15 Gigabits/sec outbound http://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines https://engineering.linkedin.com/kafka/running-kafka-scale Apache Kafka - Scalable Message Processing and more!
  • 21. Kafka Connect Apache Kafka - Scalable Message Processing and more!
  • 22. Kafka Connect Architecture Apache Kafka - Scalable Message Processing and more! Source: Confluent
  • 23. Kafka Connector Hub – Certified Connectors Source: http://www.confluent.io/product/connectors Apache Kafka - Scalable Message Processing and more!
  • 24. Kafka Connector Hub – Additional Connectors Source: http://www.confluent.io/product/connectors Apache Kafka - Scalable Message Processing and more!
  • 25. Kafka Connect – Twitter example Apache Kafka - Scalable Message Processing and more! ./connect-standalone.sh ../demo-config/connect-simple-source-standalone.properties ../demo-config/twitter-source.properties name=twitter-source connector.class=com.eneco.trading.kafka.connect.twitter.TwitterSourceConnector tasks.max=1 topic=tweets twitter.consumerkey=<consumer-key> twitter.consumersecret=<consumer-secret> twitter.token=<token> twitter.secret=<token-secret> track.terms=bigdata bootstrap.servers=localhost:9095,localhost:9096,localhost:9097 key.converter=org.apache.kafka.connect.storage.StringConverter value.converter=org.apache.kafka.connect.storage.StringConverter ...
  • 26. Kafka Streams Apache Kafka - Scalable Message Processing and more!
  • 27. Kafka Streams • Designed as a simple and lightweight library in Apache Kafka • no external dependencies on systems other than Apache Kafka • Part of open source Apache Kafka, introduced in 0.10+ • Leverages Kafka as its internal messaging layer • agnostic to resource management and configuration tools • Supports fault-tolerant local state • Event-at-a-time processing (not microbatch) with millisecond latency • Windowing with out-of-order data using a Google DataFlow-like model Apache Kafka - Scalable Message Processing and more!
  • 28. Streams API in the context of Kafka Apache Kafka - Scalable Message Processing and more! Source: Confluent
  • 29. Kafka and "Big Data" / "Fast Data" Ecosystem Apache Kafka - Scalable Message Processing and more!
  • 30. Kafka and the Big Data / Fast Data ecosystem Kafka integrates with many popular products / frameworks • Apache Spark Streaming • Apache Flink • Apache Storm • Apache NiFi • Streamsets • Apache Flume • Oracle Stream Analytics • Oracle Service Bus • Oracle GoldenGate • Spring Integration Kafka Support • …Storm built-in Kafka Spout to consume events from Kafka Apache Kafka - Scalable Message Processing and more!
  • 31. Kafka in “Enterprise Architecture” Apache Kafka - Scalable Message Processing and more!
  • 32. Hadoop Clusterd Hadoop Cluster Big Data Cluster Traditional Big Data Architecture BI Tools Enterprise Data Warehouse Billing & Ordering CRM / Profile Marketing Campaigns File Import / SQL Import SQL Search Online & Mobile Apps Search NoSQL Parallel Batch Processing Distributed Filesystem • Machine Learning • Graph Algorithms • Natural Language Processing Apache Kafka - Scalable Message Processing and more!
  • 33. Event Hub Event Hub Hadoop Clusterd Hadoop Cluster Big Data Cluster Event Hub – handle event stream data BI Tools Enterprise Data Warehouse Location Social Click stream Sensor Data Billing & Ordering CRM / Profile Marketing Campaigns Event Hub Call Center Weather Data Mobile Apps SQL Search Online & Mobile Apps Search Data Flow NoSQL Parallel Batch Processing Distributed Filesystem • Machine Learning • Graph Algorithms • Natural Language Processing
  • 34. Hadoop Clusterd Hadoop Cluster Big Data Cluster Event Hub – taking Velocity into account Location Social Click stream Sensor Data Billing & Ordering CRM / Profile Marketing Campaigns Call Center Mobile Apps Batch Analytics Streaming Analytics Event Hub Event Hub Event Hub NoSQL Parallel Batch Processing Distributed Filesystem Stream Analytics NoSQL Reference / Models SQL Search Dashboard BI Tools Enterprise Data Warehouse Search Online & Mobile Apps File Import / SQL Import Weather Data Apache Kafka - Scalable Message Processing and more!
  • 35. Container Hadoop Clusterd Hadoop Cluster Big Data Cluster Event Hub – Asynchronous Microservice Architecture Location Social Click stream Sensor Data Billing & Ordering CRM / Profile Marketing Campaigns Call Center Mobile Apps Event Hub Event Hub Event Hub Parallel Batch ProcessingDistributed Filesystem Microservice NoSQLRDBMS SQL Search BI Tools Enterprise Data Warehouse Search Online & Mobile Apps File Import / SQL Import Weather Data Apache Kafka - Scalable Message Processing and more! { } API
  • 36. Confluent Platform Apache Kafka - Scalable Message Processing and more!
  • 37. Confluent Data Platform 3.2 Apache Kafka - Scalable Message Processing and more! Source: Confluent
  • 38. Confluent Data Platform 3.2 Apache Kafka - Scalable Message Processing and more! Source: Confluent
  • 39. Confluent Enterprise – Control Center Apache Kafka - Scalable Message Processing and more! Source: Confluent
  • 40. Summary Apache Kafka - Scalable Message Processing and more!
  • 41. Summary • Kafka can scale to millions of messages per second, and more • Easy to start in a Proof of Concept (PoC), but more to invest to setup a production environment • Monitoring is key • Vibrant community and ecosystem • Fast paced technology • Confluent provides distribution and support for Apache Kafka • Oracle Event Hub Service offers a Kafka Managed Service Apache Kafka - Scalable Message Processing and more!
  • 42. Weather Data SQL Import Hadoop Clusterd Hadoop Cluster Hadoop Cluster Location Social Click stream Sensor Data Billing & Ordering CRM / Profile Marketing Campaigns Call Center Mobile Apps Batch Analytics Streaming Analytics Event Hub Event Hub Event Hub NoSQL Parallel Processing Distributed Filesystem Stream Analytics NoSQL Reference / Models SQL Search Dashboard BI Tools Enterprise Data Warehouse Search Online & Mobile Apps Customer Event Hub – mapping of technologies Apache Kafka - Scalable Message Processing and more!
  • 43. Guido Schmutz Technology Manager guido.schmutz@trivadis.com Apache Kafka - Scalable Message Processing and more! @gschmutz guidoschmutz.wordpress.com