SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
1
Please Upgrade Kafka
NOW
Gwen Shapira @gwenshap
2
Why am I giving this
talk?
3
Because I Want
You to Upgrade
Kafka
4
55
The Bugs We’ve Fixed
6
We fix bugs
7
New
consumer
+ Connect
Exactly Once
Kafka Streams
8
Kafka Version # of bugs fixed Kafka Version # of bugs fixed Kafka Version # of bugs fixed
2.3.0 87 1.0.2 21 0.10.1.1 24
2.2.1 39 1.0.1 39 0.10.1.0 131
2.2.0 82 1.0.0 134 0.10.0.1 40
2.1.1 33 0.11.0.3 22 0.10.0.0 190
2.1.0 98 0.11.0.2 15 0.9.0.1 46
2.0.1 40 0.11.0.1 40 0.9.0.0 290
2.0.0 127 0.11.0.0 215 0.8.2.2 2
1.1.1 36 0.10.2.2 25 0.8.2.1 4
1.1.0 133 0.10.2.1 26 0.8.2.0 155
0.10.2.0 134
9
Some re-designs are
very big bug fixes
10
The Journey
to
Reliable
Replication
11
It was a dark and
stormy night...
● Support got a call: “We
are seeing high number
of URP. Some brokers
are not replicating”
● Earlier: Several Kafka
brokers were restarted
in quick succession
for… reasons.
12
kafka.common.InvalidOffsetException: Attempt to append an
offset (1239742691) to position 35728 no larger than the
last offset appended (1239742822) to
/data3/kafka/mt_xp/00000000001239444214.index
[2016-02-25 00:29:39,236] FATAL [ReplicaFetcherThread-0-1], Halting
because log truncation is not allowed for topic test, Current leader 1's
latest offset 0 is less than replica 2's latest offset 151
(kafka.server.ReplicaFetcherThread)
"Error due to... kafka.common.KafkaException: Error
processing data for partition topic-KK offset NNNN ...
Caused by: java.lang.IllegalArgumentException: Out of
order offsets found in List(...
13
0.11.0.0
KIP-101: Added leader epoch.
Followers truncate to first offset
of new epoch
< 0.11.0
High watermark used for
follower log truncation.
Unfortunately, it is propagated
asynchronously.
2.0.0
KIP-279: Negotiating the
correct epoch. Followers get the
prev epoch + its last offset. Can
ask for older epoch.
2.3.0
KIP-320: Consumers handle log
truncation from unclean election
without resetting offsets.
KIP-416: Replica threads no longer die.
2.1.0
KIP-320: Fencing against
zombie replicas. Fetch requests
include epoch. Zombies will be
rejected.
???
????
14
I asked Confluent Support to
recommend a version:
15
Controller
redesign
16
It was a dark and
stormy night...
● You restarted a broker
● When it came back,
some replicas were
offline
● Or maybe partitions are
truncated to zero
● Or maybe clients
timeout during
controlled leader
election
17
0.11.0.0
Controller is now single
threaded, has integration tests,
several bug fixes
2.1.0
Controller fenced against direct
updates to ZK
< 0.11.0.0
Controller is multi-threaded,
communicates with ZK and
brokers synchronously and
un-batched
1.1.0
Async ZK client: faster failover
and election. Fencing against
controller coming back after GC
pause as zombie.
2.2.0
Broker epochs protect brokers
from controller messages sent
before restart
???
???
18
Some
versions are
critical for
specific
use-cases
19
Kubernetes?
● Your Java clients must be 2.2.0
or 2.1.1 and above
● Otherwise we don’t resolve IPs
correctly and don’t recover
correctly
● KAFKA-6863
● KAFKA-7755
20
JBOD?
● You need to be at least on: 1.1.2, 2.0.2,
2.1.2 or 2.2.0
● And this may not be enough…
EOS?
● Definitely not earlier than 1.0.2
● Watch for KIP-360
21
Vulnerabilities
● CVE-2018-17196 AUTHENTICATED
CLIENTS WITH WRITE PERMISSION MAY
BYPASS TRANSACTION/IDEMPOTENT ACL
VALIDATION - 2.11 and later
● CVE-2018-1288 AUTHENTICATED KAFKA
CLIENTS MAY INTERFERE WITH DATA
REPLICATION -
● CVE-2017-12610 AUTHENTICATED KAFKA
CLIENTS MAY IMPERSONATE OTHER
USERS
22
Lessons! First release of a major
feature has more bugs
Bugfix releases have
only bug fixes.
Always upgrade to
latest bug fix release :
2.3.1
Especially if you care
about security.
2323
OK. I got it. I have to upgrade.
Now.
But how?
24
The Basics
● Backup configuration
● Read the docs
● Read the “notable changes” list.
● Don’t skip anything in bold font
● Make sure you have current version
configured:
inter.broker.protocol.version=CURRENT_KAFKA_VERSION
log.message.format.version=CURRENT_MESSAGE_FORMAT_VERSI
ON
25
Rolling upgrades
26
kafka-3 kafka-2 kafka-1 kafka-0
27
kafka-3 kafka-2 kafka-1 kafka-0
URP > 0 URP > 0 URP > 0
28
kafka-3 kafka-2 kafka-1 kafka-0
URP > 0 URP > 0 URP > 0
29
kafka-3 kafka-2 kafka-1 kafka-0
URP > 0 URP > 0 URP > 0
30
kafka-3 kafka-2 kafka-1 kafka-0
If URP does not drop to zero,
do not proceed with upgrade!
31
kafka-3 kafka-2 kafka-1 kafka-0
URP > 0 URP > 0 URP > 0
32
Protocol Bumps ● Repeat the roll twice
● First time you upgrade the Kafka binaries
● Second time you change to new version
one or both of:
○ inter.broker.protocol.version
○ Log.message.format.version
● You can run for years with new version and
old protocol
● Only bump protocol and message format
when you are certain things look good.
● Try to bump message format version after
most consumers are on new version
33
Rollbacks and Downgrades
As long as you just updated
binaries - downgrade is easy.
Switch back to old binaries.
Some message and protocol
version bumps are reversible,
but there are lots of caveats.
Tread carefully.
The protocol bump from 2.1.x to
2.2.0+ is not reversible. Not
even with replication to older
cluster!
34
Rolling upgrades is the
only tested zero-downtime
upgrade method
35
How not to upgrade
● Add a broker with new version, move
partitions, remove old broker.
● Replicate to a cluster of a new version.
● Set up two clusters. Produce to both
for 30 days. Slowly move consumers
over.
3636
Some (bad)
reasons not to
upgrade
My users won’t let me
upgrade.
Upgrades are
considered risky in my
organization, we are
discouraged from
making any changes.
Testing is difficult.
Once we went through
all the tests, we just
want to stick to our
version.
I don’t have time.
37
Upgrade early,
upgrade often
Upgrading
38
Looks like a lot of
work?
Automate it.
● Confluent Operator
● Ansible
● Or automate your own
39
Summary
● Upgrade Kafka.
● Early and often.
● To the latest bugfix release.
● Using automated rolling upgrade.
40
Bonus:
2.3.1 release
● 11 critical / blocking fixes
● 34 bugs fixed in total
● 1 improvement to Kafka Connect
○ KAFKA-8676: Avoid Stopping
Unnecessary Connectors and Tasks
● NPEs fixed, memory leaks handled,
performance improved, rebalances
un-regressed.
41
42
Primary Color
Palette
Ok to use for color
blocks, icons, misc art,
drawing attention to text.
#FF671F
Orange
#ADC9E8
Light Blue
#3AB0C8
Teal
#4597CB
Blue
43
Secondary Colors
Can be used to highlight text or elements if primary colors are insufficient.
#5233B2
Purple
#FB5660
Red
#00004B
Navy
#003CC8
Blue
44
Utility Color Palette
Ok to used for text, dividers, table borders/fills, icons, misc art.
Default color for text on white backgrounds is BLACK.
#000000
Black
#C8C8C8
Grey
#F4F4F4
Light Grey
#666666
Dark Grey
45
We know it can be hard,
but please try to stick to the theme colors in
this template.
When you are creating new shapes or changing the color of type, there is a section
in your color palette labeled “Theme.”
46
Typography
Headings
When creating a new text box,
the font defaults to Arial in
Google Slides and PowerPoint.
Please make sure to select one
of the outlined fonts listed here.
H1 / Roboto Bold
H2 / Roboto Bold 30pt
H3 / Roboto Bold 20pt
40pt
47
Typography
Body Text
When creating a new text box,
the font defaults to Arial in
Google Slides and PowerPoint.
Please make sure to select one
of the outlined fonts listed here.
Body / Roboto Regular
Small / Roboto Light
Source Code / Source Code Pro 14pt
14pt
18pt
4848
A few helpful tips
When copying and pasting slides from different decks, please select:
theme > in this presentation > the lastest version (Use latest)
If starting with an old deck:
theme > import theme > company drive > presentations > templates
You can select a slide on the left and select layout to preview and select
the best layout option for your content.
Note: You still have to select a layout for each slide.
49
50
51

Contenu connexe

Tendances

Apache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic DatasetsApache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic DatasetsAlluxio, Inc.
 
Scalar DB: A library that makes non-ACID databases ACID-compliant
Scalar DB: A library that makes non-ACID databases ACID-compliantScalar DB: A library that makes non-ACID databases ACID-compliant
Scalar DB: A library that makes non-ACID databases ACID-compliantScalar, Inc.
 
Building an Event Streaming Architecture with Apache Pulsar
Building an Event Streaming Architecture with Apache PulsarBuilding an Event Streaming Architecture with Apache Pulsar
Building an Event Streaming Architecture with Apache PulsarScyllaDB
 
TiDBのトランザクション
TiDBのトランザクションTiDBのトランザクション
TiDBのトランザクションAkio Mitobe
 
Data Loss and Duplication in Kafka
Data Loss and Duplication in KafkaData Loss and Duplication in Kafka
Data Loss and Duplication in KafkaJayesh Thakrar
 
Introduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlIntroduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlJiangjie Qin
 
Performance optimization for all flash based on aarch64 v2.0
Performance optimization for all flash based on aarch64 v2.0Performance optimization for all flash based on aarch64 v2.0
Performance optimization for all flash based on aarch64 v2.0Ceph Community
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022HostedbyConfluent
 
FDW-based Sharding Update and Future
FDW-based Sharding Update and FutureFDW-based Sharding Update and Future
FDW-based Sharding Update and FutureMasahiko Sawada
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Yuki Morishita
 
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsight
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsightIngestion in data pipelines with Managed Kafka Clusters in Azure HDInsight
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsightMicrosoft Tech Community
 
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化kazuhcurry
 
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43Preferred Networks
 
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活Kuninobu SaSaki
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始めtetsusat
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka StreamsGuozhang Wang
 
Apache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once SemanticsApache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once SemanticsYoshiyasu SAEKI
 
Apache Kafka Fundamentals for Architects, Admins and Developers
Apache Kafka Fundamentals for Architects, Admins and DevelopersApache Kafka Fundamentals for Architects, Admins and Developers
Apache Kafka Fundamentals for Architects, Admins and Developersconfluent
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafkaemreakis
 

Tendances (20)

Apache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic DatasetsApache Iceberg - A Table Format for Hige Analytic Datasets
Apache Iceberg - A Table Format for Hige Analytic Datasets
 
Scalar DB: A library that makes non-ACID databases ACID-compliant
Scalar DB: A library that makes non-ACID databases ACID-compliantScalar DB: A library that makes non-ACID databases ACID-compliant
Scalar DB: A library that makes non-ACID databases ACID-compliant
 
Building an Event Streaming Architecture with Apache Pulsar
Building an Event Streaming Architecture with Apache PulsarBuilding an Event Streaming Architecture with Apache Pulsar
Building an Event Streaming Architecture with Apache Pulsar
 
TiDBのトランザクション
TiDBのトランザクションTiDBのトランザクション
TiDBのトランザクション
 
Data Loss and Duplication in Kafka
Data Loss and Duplication in KafkaData Loss and Duplication in Kafka
Data Loss and Duplication in Kafka
 
Introduction to Kafka Cruise Control
Introduction to Kafka Cruise ControlIntroduction to Kafka Cruise Control
Introduction to Kafka Cruise Control
 
Performance optimization for all flash based on aarch64 v2.0
Performance optimization for all flash based on aarch64 v2.0Performance optimization for all flash based on aarch64 v2.0
Performance optimization for all flash based on aarch64 v2.0
 
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
スケールアウトするPostgreSQLを目指して!その第一歩!(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
Introducing KRaft: Kafka Without Zookeeper With Colin McCabe | Current 2022
 
FDW-based Sharding Update and Future
FDW-based Sharding Update and FutureFDW-based Sharding Update and Future
FDW-based Sharding Update and Future
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
 
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsight
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsightIngestion in data pipelines with Managed Kafka Clusters in Azure HDInsight
Ingestion in data pipelines with Managed Kafka Clusters in Azure HDInsight
 
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
 
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
 
EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活EnrootとPyxisで快適コンテナ生活
EnrootとPyxisで快適コンテナ生活
 
FD.io VPP事始め
FD.io VPP事始めFD.io VPP事始め
FD.io VPP事始め
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka Streams
 
Apache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once SemanticsApache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once Semantics
 
Apache Kafka Fundamentals for Architects, Admins and Developers
Apache Kafka Fundamentals for Architects, Admins and DevelopersApache Kafka Fundamentals for Architects, Admins and Developers
Apache Kafka Fundamentals for Architects, Admins and Developers
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafka
 

Similaire à Please Upgrade Apache Kafka. Now. (Gwen Shapira, Confluent) Kafka Summit SF 2019

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
 
An Introduction to Apache Kafka
An Introduction to Apache KafkaAn Introduction to Apache Kafka
An Introduction to Apache KafkaAmir Sedighi
 
Apache Kafka's Common Pitfalls & Intricacies: A Customer Support Perspective
Apache Kafka's Common Pitfalls & Intricacies: A Customer Support PerspectiveApache Kafka's Common Pitfalls & Intricacies: A Customer Support Perspective
Apache Kafka's Common Pitfalls & Intricacies: A Customer Support PerspectiveHostedbyConfluent
 
Kafka Summit SF 2017 - Running Kafka as a Service at Scale
Kafka Summit SF 2017 - Running Kafka as a Service at ScaleKafka Summit SF 2017 - Running Kafka as a Service at Scale
Kafka Summit SF 2017 - Running Kafka as a Service at Scaleconfluent
 
SFBigAnalytics_20190724: Monitor kafka like a Pro
SFBigAnalytics_20190724: Monitor kafka like a ProSFBigAnalytics_20190724: Monitor kafka like a Pro
SFBigAnalytics_20190724: Monitor kafka like a ProChester Chen
 
Getting Started with Kafka on k8s
Getting Started with Kafka on k8sGetting Started with Kafka on k8s
Getting Started with Kafka on k8sVMware Tanzu
 
Twitter’s Apache Kafka Adoption Journey | Ming Liu, Twitter
Twitter’s Apache Kafka Adoption Journey | Ming Liu, TwitterTwitter’s Apache Kafka Adoption Journey | Ming Liu, Twitter
Twitter’s Apache Kafka Adoption Journey | Ming Liu, TwitterHostedbyConfluent
 
Microservices interaction at scale using Apache Kafka
Microservices interaction at scale using Apache KafkaMicroservices interaction at scale using Apache Kafka
Microservices interaction at scale using Apache KafkaIvan Ursul
 
Fundamentals of Apache Kafka
Fundamentals of Apache KafkaFundamentals of Apache Kafka
Fundamentals of Apache KafkaChhavi Parasher
 
HBaseCon 2013: Scalable Network Designs for Apache HBase
HBaseCon 2013: Scalable Network Designs for Apache HBaseHBaseCon 2013: Scalable Network Designs for Apache HBase
HBaseCon 2013: Scalable Network Designs for Apache HBaseCloudera, Inc.
 
Grokking TechTalk #24: Kafka's principles and protocols
Grokking TechTalk #24: Kafka's principles and protocolsGrokking TechTalk #24: Kafka's principles and protocols
Grokking TechTalk #24: Kafka's principles and protocolsGrokking VN
 
Proof of Concept on Kafka.pptx
Proof of Concept on Kafka.pptxProof of Concept on Kafka.pptx
Proof of Concept on Kafka.pptxssuser92147e
 
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
 
Percon XtraDB Cluster in a nutshell
Percon XtraDB Cluster in a nutshellPercon XtraDB Cluster in a nutshell
Percon XtraDB Cluster in a nutshellFrederic Descamps
 
Apache Kafka Reliability
Apache Kafka Reliability Apache Kafka Reliability
Apache Kafka Reliability Jeff Holoman
 
Autonomous workload rebalancing in kafka
Autonomous workload rebalancing in kafkaAutonomous workload rebalancing in kafka
Autonomous workload rebalancing in kafkaIndrajeet Kumar
 

Similaire à Please Upgrade Apache Kafka. Now. (Gwen Shapira, Confluent) Kafka Summit SF 2019 (20)

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...
 
An Introduction to Apache Kafka
An Introduction to Apache KafkaAn Introduction to Apache Kafka
An Introduction to Apache Kafka
 
Apache Kafka's Common Pitfalls & Intricacies: A Customer Support Perspective
Apache Kafka's Common Pitfalls & Intricacies: A Customer Support PerspectiveApache Kafka's Common Pitfalls & Intricacies: A Customer Support Perspective
Apache Kafka's Common Pitfalls & Intricacies: A Customer Support Perspective
 
Kafka Explainaton
Kafka ExplainatonKafka Explainaton
Kafka Explainaton
 
Kafka Summit SF 2017 - Running Kafka as a Service at Scale
Kafka Summit SF 2017 - Running Kafka as a Service at ScaleKafka Summit SF 2017 - Running Kafka as a Service at Scale
Kafka Summit SF 2017 - Running Kafka as a Service at Scale
 
SFBigAnalytics_20190724: Monitor kafka like a Pro
SFBigAnalytics_20190724: Monitor kafka like a ProSFBigAnalytics_20190724: Monitor kafka like a Pro
SFBigAnalytics_20190724: Monitor kafka like a Pro
 
Getting Started with Kafka on k8s
Getting Started with Kafka on k8sGetting Started with Kafka on k8s
Getting Started with Kafka on k8s
 
Twitter’s Apache Kafka Adoption Journey | Ming Liu, Twitter
Twitter’s Apache Kafka Adoption Journey | Ming Liu, TwitterTwitter’s Apache Kafka Adoption Journey | Ming Liu, Twitter
Twitter’s Apache Kafka Adoption Journey | Ming Liu, Twitter
 
Tema3
Tema3Tema3
Tema3
 
Microservices interaction at scale using Apache Kafka
Microservices interaction at scale using Apache KafkaMicroservices interaction at scale using Apache Kafka
Microservices interaction at scale using Apache Kafka
 
Deployer in Pipelines
Deployer in PipelinesDeployer in Pipelines
Deployer in Pipelines
 
Fundamentals of Apache Kafka
Fundamentals of Apache KafkaFundamentals of Apache Kafka
Fundamentals of Apache Kafka
 
HBaseCon 2013: Scalable Network Designs for Apache HBase
HBaseCon 2013: Scalable Network Designs for Apache HBaseHBaseCon 2013: Scalable Network Designs for Apache HBase
HBaseCon 2013: Scalable Network Designs for Apache HBase
 
Grokking TechTalk #24: Kafka's principles and protocols
Grokking TechTalk #24: Kafka's principles and protocolsGrokking TechTalk #24: Kafka's principles and protocols
Grokking TechTalk #24: Kafka's principles and protocols
 
Proof of Concept on Kafka.pptx
Proof of Concept on Kafka.pptxProof of Concept on Kafka.pptx
Proof of Concept on Kafka.pptx
 
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
 
kafka
kafkakafka
kafka
 
Percon XtraDB Cluster in a nutshell
Percon XtraDB Cluster in a nutshellPercon XtraDB Cluster in a nutshell
Percon XtraDB Cluster in a nutshell
 
Apache Kafka Reliability
Apache Kafka Reliability Apache Kafka Reliability
Apache Kafka Reliability
 
Autonomous workload rebalancing in kafka
Autonomous workload rebalancing in kafkaAutonomous workload rebalancing in kafka
Autonomous workload rebalancing in kafka
 

Plus de confluent

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flinkconfluent
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsconfluent
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flinkconfluent
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...confluent
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluentconfluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkconfluent
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloudconfluent
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Diveconfluent
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluentconfluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Meshconfluent
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservicesconfluent
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3confluent
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernizationconfluent
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataconfluent
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2confluent
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023confluent
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesisconfluent
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023confluent
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streamsconfluent
 

Plus de confluent (20)

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Santander Stream Processing with Apache Flink
Santander Stream Processing with Apache FlinkSantander Stream Processing with Apache Flink
Santander Stream Processing with Apache Flink
 
Unlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insightsUnlocking the Power of IoT: A comprehensive approach to real-time insights
Unlocking the Power of IoT: A comprehensive approach to real-time insights
 
Workshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con FlinkWorkshop híbrido: Stream Processing con Flink
Workshop híbrido: Stream Processing con Flink
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
 
AWS Immersion Day Mapfre - Confluent
AWS Immersion Day Mapfre   -   ConfluentAWS Immersion Day Mapfre   -   Confluent
AWS Immersion Day Mapfre - Confluent
 
Eventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalkEventos y Microservicios - Santander TechTalk
Eventos y Microservicios - Santander TechTalk
 
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent CloudQ&A with Confluent Experts: Navigating Networking in Confluent Cloud
Q&A with Confluent Experts: Navigating Networking in Confluent Cloud
 
Citi TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep DiveCiti TechTalk Session 2: Kafka Deep Dive
Citi TechTalk Session 2: Kafka Deep Dive
 
Build real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with ConfluentBuild real-time streaming data pipelines to AWS with Confluent
Build real-time streaming data pipelines to AWS with Confluent
 
Q&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service MeshQ&A with Confluent Professional Services: Confluent Service Mesh
Q&A with Confluent Professional Services: Confluent Service Mesh
 
Citi Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka MicroservicesCiti Tech Talk: Event Driven Kafka Microservices
Citi Tech Talk: Event Driven Kafka Microservices
 
Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3Confluent & GSI Webinars series - Session 3
Confluent & GSI Webinars series - Session 3
 
Citi Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging ModernizationCiti Tech Talk: Messaging Modernization
Citi Tech Talk: Messaging Modernization
 
Citi Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time dataCiti Tech Talk: Data Governance for streaming and real time data
Citi Tech Talk: Data Governance for streaming and real time data
 
Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2Confluent & GSI Webinars series: Session 2
Confluent & GSI Webinars series: Session 2
 
Data In Motion Paris 2023
Data In Motion Paris 2023Data In Motion Paris 2023
Data In Motion Paris 2023
 
Confluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with SynthesisConfluent Partner Tech Talk with Synthesis
Confluent Partner Tech Talk with Synthesis
 
The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023The Future of Application Development - API Days - Melbourne 2023
The Future of Application Development - API Days - Melbourne 2023
 
The Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data StreamsThe Playful Bond Between REST And Data Streams
The Playful Bond Between REST And Data Streams
 

Dernier

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Dernier (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Please Upgrade Apache Kafka. Now. (Gwen Shapira, Confluent) Kafka Summit SF 2019

  • 2. 2 Why am I giving this talk?
  • 3. 3 Because I Want You to Upgrade Kafka
  • 4. 4
  • 8. 8 Kafka Version # of bugs fixed Kafka Version # of bugs fixed Kafka Version # of bugs fixed 2.3.0 87 1.0.2 21 0.10.1.1 24 2.2.1 39 1.0.1 39 0.10.1.0 131 2.2.0 82 1.0.0 134 0.10.0.1 40 2.1.1 33 0.11.0.3 22 0.10.0.0 190 2.1.0 98 0.11.0.2 15 0.9.0.1 46 2.0.1 40 0.11.0.1 40 0.9.0.0 290 2.0.0 127 0.11.0.0 215 0.8.2.2 2 1.1.1 36 0.10.2.2 25 0.8.2.1 4 1.1.0 133 0.10.2.1 26 0.8.2.0 155 0.10.2.0 134
  • 9. 9 Some re-designs are very big bug fixes
  • 11. 11 It was a dark and stormy night... ● Support got a call: “We are seeing high number of URP. Some brokers are not replicating” ● Earlier: Several Kafka brokers were restarted in quick succession for… reasons.
  • 12. 12 kafka.common.InvalidOffsetException: Attempt to append an offset (1239742691) to position 35728 no larger than the last offset appended (1239742822) to /data3/kafka/mt_xp/00000000001239444214.index [2016-02-25 00:29:39,236] FATAL [ReplicaFetcherThread-0-1], Halting because log truncation is not allowed for topic test, Current leader 1's latest offset 0 is less than replica 2's latest offset 151 (kafka.server.ReplicaFetcherThread) "Error due to... kafka.common.KafkaException: Error processing data for partition topic-KK offset NNNN ... Caused by: java.lang.IllegalArgumentException: Out of order offsets found in List(...
  • 13. 13 0.11.0.0 KIP-101: Added leader epoch. Followers truncate to first offset of new epoch < 0.11.0 High watermark used for follower log truncation. Unfortunately, it is propagated asynchronously. 2.0.0 KIP-279: Negotiating the correct epoch. Followers get the prev epoch + its last offset. Can ask for older epoch. 2.3.0 KIP-320: Consumers handle log truncation from unclean election without resetting offsets. KIP-416: Replica threads no longer die. 2.1.0 KIP-320: Fencing against zombie replicas. Fetch requests include epoch. Zombies will be rejected. ??? ????
  • 14. 14 I asked Confluent Support to recommend a version:
  • 16. 16 It was a dark and stormy night... ● You restarted a broker ● When it came back, some replicas were offline ● Or maybe partitions are truncated to zero ● Or maybe clients timeout during controlled leader election
  • 17. 17 0.11.0.0 Controller is now single threaded, has integration tests, several bug fixes 2.1.0 Controller fenced against direct updates to ZK < 0.11.0.0 Controller is multi-threaded, communicates with ZK and brokers synchronously and un-batched 1.1.0 Async ZK client: faster failover and election. Fencing against controller coming back after GC pause as zombie. 2.2.0 Broker epochs protect brokers from controller messages sent before restart ??? ???
  • 19. 19 Kubernetes? ● Your Java clients must be 2.2.0 or 2.1.1 and above ● Otherwise we don’t resolve IPs correctly and don’t recover correctly ● KAFKA-6863 ● KAFKA-7755
  • 20. 20 JBOD? ● You need to be at least on: 1.1.2, 2.0.2, 2.1.2 or 2.2.0 ● And this may not be enough… EOS? ● Definitely not earlier than 1.0.2 ● Watch for KIP-360
  • 21. 21 Vulnerabilities ● CVE-2018-17196 AUTHENTICATED CLIENTS WITH WRITE PERMISSION MAY BYPASS TRANSACTION/IDEMPOTENT ACL VALIDATION - 2.11 and later ● CVE-2018-1288 AUTHENTICATED KAFKA CLIENTS MAY INTERFERE WITH DATA REPLICATION - ● CVE-2017-12610 AUTHENTICATED KAFKA CLIENTS MAY IMPERSONATE OTHER USERS
  • 22. 22 Lessons! First release of a major feature has more bugs Bugfix releases have only bug fixes. Always upgrade to latest bug fix release : 2.3.1 Especially if you care about security.
  • 23. 2323 OK. I got it. I have to upgrade. Now. But how?
  • 24. 24 The Basics ● Backup configuration ● Read the docs ● Read the “notable changes” list. ● Don’t skip anything in bold font ● Make sure you have current version configured: inter.broker.protocol.version=CURRENT_KAFKA_VERSION log.message.format.version=CURRENT_MESSAGE_FORMAT_VERSI ON
  • 27. 27 kafka-3 kafka-2 kafka-1 kafka-0 URP > 0 URP > 0 URP > 0
  • 28. 28 kafka-3 kafka-2 kafka-1 kafka-0 URP > 0 URP > 0 URP > 0
  • 29. 29 kafka-3 kafka-2 kafka-1 kafka-0 URP > 0 URP > 0 URP > 0
  • 30. 30 kafka-3 kafka-2 kafka-1 kafka-0 If URP does not drop to zero, do not proceed with upgrade!
  • 31. 31 kafka-3 kafka-2 kafka-1 kafka-0 URP > 0 URP > 0 URP > 0
  • 32. 32 Protocol Bumps ● Repeat the roll twice ● First time you upgrade the Kafka binaries ● Second time you change to new version one or both of: ○ inter.broker.protocol.version ○ Log.message.format.version ● You can run for years with new version and old protocol ● Only bump protocol and message format when you are certain things look good. ● Try to bump message format version after most consumers are on new version
  • 33. 33 Rollbacks and Downgrades As long as you just updated binaries - downgrade is easy. Switch back to old binaries. Some message and protocol version bumps are reversible, but there are lots of caveats. Tread carefully. The protocol bump from 2.1.x to 2.2.0+ is not reversible. Not even with replication to older cluster!
  • 34. 34 Rolling upgrades is the only tested zero-downtime upgrade method
  • 35. 35 How not to upgrade ● Add a broker with new version, move partitions, remove old broker. ● Replicate to a cluster of a new version. ● Set up two clusters. Produce to both for 30 days. Slowly move consumers over.
  • 36. 3636 Some (bad) reasons not to upgrade My users won’t let me upgrade. Upgrades are considered risky in my organization, we are discouraged from making any changes. Testing is difficult. Once we went through all the tests, we just want to stick to our version. I don’t have time.
  • 38. 38 Looks like a lot of work? Automate it. ● Confluent Operator ● Ansible ● Or automate your own
  • 39. 39 Summary ● Upgrade Kafka. ● Early and often. ● To the latest bugfix release. ● Using automated rolling upgrade.
  • 40. 40 Bonus: 2.3.1 release ● 11 critical / blocking fixes ● 34 bugs fixed in total ● 1 improvement to Kafka Connect ○ KAFKA-8676: Avoid Stopping Unnecessary Connectors and Tasks ● NPEs fixed, memory leaks handled, performance improved, rebalances un-regressed.
  • 41. 41
  • 42. 42 Primary Color Palette Ok to use for color blocks, icons, misc art, drawing attention to text. #FF671F Orange #ADC9E8 Light Blue #3AB0C8 Teal #4597CB Blue
  • 43. 43 Secondary Colors Can be used to highlight text or elements if primary colors are insufficient. #5233B2 Purple #FB5660 Red #00004B Navy #003CC8 Blue
  • 44. 44 Utility Color Palette Ok to used for text, dividers, table borders/fills, icons, misc art. Default color for text on white backgrounds is BLACK. #000000 Black #C8C8C8 Grey #F4F4F4 Light Grey #666666 Dark Grey
  • 45. 45 We know it can be hard, but please try to stick to the theme colors in this template. When you are creating new shapes or changing the color of type, there is a section in your color palette labeled “Theme.”
  • 46. 46 Typography Headings When creating a new text box, the font defaults to Arial in Google Slides and PowerPoint. Please make sure to select one of the outlined fonts listed here. H1 / Roboto Bold H2 / Roboto Bold 30pt H3 / Roboto Bold 20pt 40pt
  • 47. 47 Typography Body Text When creating a new text box, the font defaults to Arial in Google Slides and PowerPoint. Please make sure to select one of the outlined fonts listed here. Body / Roboto Regular Small / Roboto Light Source Code / Source Code Pro 14pt 14pt 18pt
  • 48. 4848 A few helpful tips When copying and pasting slides from different decks, please select: theme > in this presentation > the lastest version (Use latest) If starting with an old deck: theme > import theme > company drive > presentations > templates You can select a slide on the left and select layout to preview and select the best layout option for your content. Note: You still have to select a layout for each slide.
  • 49. 49
  • 50. 50
  • 51. 51