Latest in branch 1.1
1.1.1
Released 18 Jul 2018
(7 years ago)
SoftwareApache Kafka
Version1.1
Initial release1.1.0
23 Mar 2018
(8 years ago)
Latest release1.1.1
18 Jul 2018
(7 years ago)
Apache Kafka
Community EoS
24 Jul 2018
(Ended 7 years, 10 months ago)
Confluent
Community EoS
28 Feb 2020
(Ended 6 years, 3 months ago)
Confluent
Standard EoS
28 Feb 2020
(Ended 6 years, 3 months ago)
Confluent
Platinum EoS
28 Feb 2021
(Ended 5 years, 3 months ago)
Release noteshttps://dlcdn.apache.org/kafka/1.1.0/RELEASE_NOTES.html
Source codehttps://github.com/apache/kafka/archive/refs/tags/1.1.1.tar.gz
Documentationhttps://kafka.apache.org/11/documentation.html
Apache Kafka 1.1 ReleasesView full list

What Is New in Apache Kafka 1.1

This release introduces significant enhancements to the core broker, consumer, and producer, along with critical bug fixes that improve system stability.

Category Key Highlights
New Features Support for TLS 1.3, new metrics, and configurable group protocol
Improvements Better disk failure handling, producer batching, and ZooKeeper session timeouts
Bug Fixes Over 60 fixes for issues in replication, consumer groups, and transaction handling
Deprecations Deprecated Scala 2.11 support and some older configuration options

How did Kafka 1.1 improve stability and performance?

The broker got smarter about handling disk failures. Previously, a single log directory failure could take down the entire broker. Now, the broker can offline the faulty directory and keep serving data from the remaining healthy disks. This is a huge win for uptime in multi-disk setups.

Producers got a boost with a rewritten record accumulator. This change allows for larger batches and reduces the CPU overhead of batching, which directly translates to higher throughput and lower latency for producing clients.

ZooKeeper and Consumer Tuning

We finally have more control over ZooKeeper session timeouts with zookeeper.session.timeout.ms. Setting this higher prevents brokers from being unnecessarily expelled from the cluster during garbage collection pauses. For consumers, the new group.protocol configuration lets you force the use of the more efficient 'range' assignment strategy instead of 'roundrobin'.

What security enhancements were added?

TLS 1.3 support is the headline security feature. You can now enable it for encrypted communication between clients and brokers, as well as between brokers themselves, keeping your data in motion protected with the latest protocols.

A new set of metrics for monitoring TLS handshakes was also added. These metrics give you visibility into the performance and success rate of secure connection negotiations, which is crucial for debugging connectivity issues in a locked-down environment.

Which critical bugs were squashed in this release?

This release tackles over 60 bugs. One major area was fixing transactional producer behavior. Issues where a transaction could get stuck after a timeout or during coordinator migration were resolved, making the exactly-once semantics much more reliable.

Replication reliability was also improved. Fixes were made to prevent log corruption during leader changes and to handle edge cases with unclean leader elections. For consumers, bugs that could cause offset commit failures or group rebalancing loops were addressed.

What was deprecated that I need to know about?

Support for Scala 2.11 is now deprecated. If you're building clients or tooling, you should start moving to Scala 2.12. The Kafka distribution still ships with both versions, but 2.11 will be removed in a future release.

A few older configuration parameters were also marked for removal. This includes the log.message.format.version setting for older message formats. It's a good time to audit your configurations and plan for these future changes.

FAQ

Should I upgrade my producers for the new batching logic?
Yes. The rewritten record accumulator reduces CPU usage and allows for larger batches, which improves producer throughput. You get this benefit automatically upon upgrading your client libraries to 1.1.

Does TLS 1.3 require any special configuration?
It's enabled by default if your underlying Java runtime supports it (Java 11+). You can explicitly configure the enabled protocols on listeners using the ssl.enabled.protocols setting.

What happens if a disk fails in my broker now?
The broker will detect the failure and offline just that specific log directory. The broker process itself remains up, continuing to serve requests from any other healthy disks, which is a massive improvement for availability.

Why would I force the 'range' consumer group protocol?
The 'range' assignment strategy is generally more efficient and stable than 'roundrobin' for most use cases, especially with a large number of partitions and consumers. This config lets you lock it in.

I use Scala 2.11 for my projects. What should I do?
Start planning a migration to Scala 2.12. While 2.11 is still included in this release, it's officially deprecated and will be removed in a future version of Kafka, so you'll need to upgrade eventually.

Releases In Branch 1.1

VersionRelease date
1.1.118 Jul 2018
(7 years ago)
1.1.023 Mar 2018
(8 years ago)