Apache ZooKeeper plays a critical role in distributed systems infrastructure. Are you aware of how long your current version will be supported? To help you avoid unexpected security patch discontinuation or technical support termination, this guide provides a comprehensive overview of ZooKeeper’s version-specific end-of-life schedules.

 

Apache ZooKeeper logo

 

 

1. Apache ZooKeeper Overview: The Core of Distributed Coordination

Apache ZooKeeper is a high-reliability coordination service for distributed applications. Originally developed at Yahoo!, it’s now a top-level project of the Apache Software Foundation.

Key ZooKeeper functions include:

  • Distributed Configuration Service: Centralized management of cluster-wide configuration information
  • Synchronization Service: Process synchronization in distributed environments
  • Naming Registry: Service discovery for distributed systems

Major corporations including Meta (Facebook), Twitter, LinkedIn, and Netflix rely on ZooKeeper as core infrastructure, particularly for Apache Kafka metadata management.

 

 

2. Understanding ZooKeeper Support Policy

The Apache ZooKeeper community maintains a unique support policy: only two release branches are supported simultaneously – the ‘stable’ and ‘current’ versions.

Core Support Policy Principles

  • Stable Version: Proven, stable version recommended for production environments
  • Current Version: Latest features for testing new functionality
  • EOL Notice Period: Previous stable version EOL announced approximately 6 months after new minor version release
  • Grace Period: Only security and critical fixes provided until EOL announcement

When a new minor version is released, the existing stable version will soon reach end-of-support, with approximately 6 months grace period before official End-of-Life declaration.

 

 

3. Detailed Version-Specific End-of-Life Schedule

Major Version Series EOL Status

The following table summarizes Apache ZooKeeper’s version-specific end-of-life schedules:

Version SeriesFirst ReleaseLast ReleaseEOL DateSupport StatusDownload Availability
3.4.xNovember 20113.4.14 (March 2019)June 1, 2021❌ EOLUntil June 1, 2022
3.5.xMay 20193.5.10 (February 2022)June 1, 2022❌ EOLUntil June 1, 2023
3.6.xMarch 20203.6.4 (December 2022)December 30, 2022❌ EOLUntil December 30, 2023
3.7.xJuly 20213.7.2 (December 2023)February 2, 2024❌ EOLUntil February 2, 2025
3.8.xFebruary 20223.8.5 (September 2024)TBD✅ StableCurrently Supported
3.9.xJuly 20233.9.4 (October 2024)TBD✅ CurrentCurrently Supported
3.10.xPlannedIn DevelopmentTBD🔄 DevelopmentJava 17 minimum required

Complete Patch Version Release List

3.9.x Series (Current – Currently Supported):

VersionRelease DateKey FeaturesJava Version
3.9.4October 2024CVE fixes, Logback upgradeJava 8+
3.9.3June 2024Security patches, performance improvementsJava 8+
3.9.2March 2024Bug fix releaseJava 8+
3.9.1January 2024Bug fix releaseJava 8+
3.9.0July 2023New Admin Server API, Watch improvementsJava 8+

3.8.x Series (Stable – Currently Supported):

VersionRelease DateKey FeaturesJava Version
3.8.5September 2024Bug fixes, CVE patchesJava 8+
3.8.4November 2023Jetty upgrade, security fixesJava 8+
3.8.3May 2023Bug fix releaseJava 8+
3.8.2February 2023Bug fix releaseJava 8+
3.8.1October 2022Bug fix releaseJava 8+
3.8.0February 2022New major features, performance improvementsJava 8+

Currently Supported Versions (December 2024)

The Apache ZooKeeper community currently provides official support for:

  • 3.8.x Series (Stable): 3.8.5 is the latest version
  • 3.9.x Series (Current): 3.9.4 is the latest version

Upcoming 3.10.x Version Plans

Apache ZooKeeper developers are planning version 3.10.0 with the following major changes:

  • Java 17 Minimum Requirement: Upgrade from Java 8 to Java 17
  • Jetty 12.x Upgrade: Latest security standards support
  • Performance Optimization: Memory usage improvements and processing performance enhancements
  • New Features: Admin Server API expansion and enhanced monitoring capabilities

 

 

4. Detailed Information on End-of-Life Versions

EOL Version-Specific Release Details

3.7.x Series – EOL February 2, 2024

VersionRelease DateKey FeaturesJava Version
3.7.2December 2023Final release, CVE fixesJava 8+
3.7.1May 2022Bug fixes, TLS improvementsJava 8+
3.7.0July 2021TLS 1.3 support, Admin Server improvementsJava 8+

3.6.x Series – EOL December 30, 2022

VersionRelease DateKey FeaturesJava Version
3.6.4December 2022Final release, Log4j removalJava 8+
3.6.3April 2021Security patches, stability improvementsJava 8+
3.6.2September 2020Bug fix releaseJava 8+
3.6.1May 2020Compatibility improvementsJava 8+
3.6.0March 2020New major featuresJava 8+

3.5.x Series – EOL June 1, 2022

VersionRelease DateKey FeaturesJava Version
3.5.10February 2022Final release, CVE fixesJava 8+
3.5.9January 2021Security patchesJava 8+
3.5.8May 2020Bug fixesJava 8+
3.5.7January 2020Stability improvementsJava 8+
3.5.0-3.5.62019-2019Initial releasesJava 8+

3.4.x Series – EOL June 1, 2021

VersionRelease DateKey FeaturesJava Version
3.4.14March 2019Final releaseJava 7+
3.4.13July 2018Security fixesJava 7+
3.4.12May 2018Bug fixesJava 7+
3.4.11November 2017Java 9 support addedJava 7+
3.4.0-3.4.102011-2017Initial stable versionsJava 6+/7+

Java Version Compatibility Matrix

ZooKeeper VersionMinimum JavaRecommended JavaTested MaximumBuild Requirements
3.10.x (Planned)Java 17Java 17+Java 21Java 17+
3.9.xJava 8Java 11+Java 21Java 8+
3.8.xJava 8Java 11+Java 17Java 8+
3.7.xJava 8Java 11+Java 17Java 8+
3.6.xJava 8Java 8+Java 15Java 8+
3.5.xJava 8Java 8+Java 15Java 8+
3.4.xJava 7Java 8+Java 11Java 7+

Critical Security Vulnerability History

CVE NumberAffected VersionsFixed VersionSeverityDescription
CVE-2024-127983.9.0-3.9.33.9.4+HighLogback vulnerability
CVE-2024-67633.7.0-3.7.13.7.2+MediumJetty HTTP vulnerability
CVE-2023-436423.8.0-3.8.33.8.4+HighSnappy-java vulnerability
CVE-2021-344293.6.0-3.6.2, 3.7.03.6.3+, 3.7.1+HighJetty vulnerability
Log4Shell3.5.x and below3.6.4+CriticalLog4j remote code execution

 

 

5. Upgrade Guidelines and Migration Paths

Recommended Upgrade Path Matrix

Current VersionStep 1 UpgradeStep 2 UpgradeFinal TargetEstimated Time
3.4.x→ 3.5.10→ 3.8.5→ 3.9.42-3 weeks
3.5.x→ 3.6.4→ 3.8.5→ 3.9.41-2 weeks
3.6.x→ 3.7.2→ 3.8.5→ 3.9.41 week
3.7.x→ 3.8.5→ 3.9.4 (optional)3-5 days
3.8.x→ 3.9.4 (optional)1-2 days

Version-Specific Upgrade Considerations

3.4.x → 3.5.x Upgrade:

  • ⚠️ Java 8 Required: Java 7 support discontinued
  • 🔧 Configuration Changes: Some configuration parameters require modification
  • 📊 New Metrics: JMX metrics structure changes

3.5.x → 3.6.x Upgrade:

  • 🔐 Security Enhancement: SASL authentication improvements
  • 📝 Audit Log: New audit logging functionality
  • 🚀 Performance Improvements: Memory usage optimization

3.6.x → 3.7.x Upgrade:

  • 🔒 TLS 1.3: New encryption protocol support
  • 🎛️ Admin Server: REST API expansion
  • 🐛 Log4j Removal: Replaced with reload4j

3.7.x → 3.8.x Upgrade:

  • 📈 Performance Enhancement: Throughput and latency improvements
  • 🔧 New Configuration: Additional configuration options
  • 🛡️ Security Patches: Multiple CVE fixes

3.8.x → 3.9.x Upgrade:

  • 🎯 New APIs: Admin Server API expansion
  • 👀 Watch Improvements: Enhanced event processing
  • 📊 Monitoring: New metrics and diagnostic tools

Rolling Upgrade Support Matrix

Upgrade PathRolling SupportDowntimeClient Compatibility
3.4.x → 3.5.x✅ SupportedNoneBackward compatible
3.5.x → 3.6.x✅ SupportedNoneBackward compatible
3.6.x → 3.7.x✅ SupportedNoneBackward compatible
3.7.x → 3.8.x✅ SupportedNoneBackward compatible
3.8.x → 3.9.x✅ SupportedNoneBackward compatible
3.x → 3.10.x⚠️ Verification neededTBDJava 17 required

Client Compatibility Matrix

Server Version3.4.x Client3.5.x Client3.6.x Client3.7.x Client3.8.x Client3.9.x Client
3.4.x
3.5.x
3.6.x
3.7.x
3.8.x
3.9.x

 

 

6. Confluent Platform and ZooKeeper Support Schedule

Confluent Platform has also announced ZooKeeper support termination. Confluent Platform 7.9.x will be the last version to include ZooKeeper, with 8.0.x onwards transitioning completely to KRaft architecture.

Confluent’s ZooKeeper Support Timeline

  • Standard Support: Supported until February 19, 2027
  • Platinum Support: Supported until February 19, 2028

This represents 2 and 3 years of support respectively following the Confluent Platform 7.9.x release.

 

 

7. Practical Migration Checklist

Pre-Migration Phase Checklist

Phase 1: Current Environment Analysis (1-2 days)

  • [ ] Verify current ZooKeeper version
# Method 1: Server status check
echo "stat" | nc localhost 2181 | grep "ZooKeeper version"

# Method 2: Log file check
grep "Server environment" zookeeper.out

# Method 3: JMX verification
jconsole localhost:9999 # Connect to JMX port
  • [ ] Verify Java version compatibility
  • [ ] Check client application compatibility
  • [ ] Backup current configuration files (zoo.cfg, myid, log settings)
  • [ ] Document cluster topology

Phase 2: Backup and Test Environment Setup (2-3 days)

  • [ ] Complete data directory backup
# Backup data and log directories
tar -czf zookeeper-backup-$(date +%Y%m%d).tar.gz \
    /var/lib/zookeeper/data \
    /var/lib/zookeeper/logs \
    /etc/zookeeper/zoo.cfg
  • [ ] Create snapshot backup
  • [ ] Build test cluster
  • [ ] Test upgrade scenarios

Phase 3: Upgrade Execution Plan (1 day)

  • [ ] Determine rolling upgrade order
  • [ ] Coordinate downtime windows
  • [ ] Establish rollback procedures
  • [ ] Prepare monitoring tools

Version-Specific Detailed Upgrade Procedures

Rolling Upgrade Standard Process:

# 1. Start with Follower nodes
# Node 1 upgrade
systemctl stop zookeeper
# Install new version
systemctl start zookeeper
# Health check verification
echo "ruok" | nc localhost 2181

# 2. Next Follower node (same procedure)
# 3. Leader node upgraded last

Post-Upgrade Verification Checklist

Functional Verification:

  • [ ] Cluster status verification (echo "stat" | nc localhost 2181)
  • [ ] Leader election normal operation confirmation
  • [ ] Client connection testing
  • [ ] Data integrity verification
  • [ ] Performance metrics comparison

Security Verification:

  • [ ] TLS/SSL connection testing
  • [ ] SASL authentication verification
  • [ ] ACL permission testing

Emergency Response Manual

Rollback Scenario Response:

IssueResponse MethodEstimated Recovery Time
Single node failureRollback to previous version10-15 minutes
Cluster splitComplete cluster rollback30-60 minutes
Data lossRestore from backup1-2 hours
Client compatibility issuesAdjust client configuration30 minutes

Monitoring Metrics and Alert Configuration

Key Monitoring Indicators:

MetricNormal RangeAlert ThresholdDescription
Cluster sizeEquals configured value< MajorityQuorum status
Average latency< 10ms> 50msResponse performance
Queue size< 100> 1000Processing queue status
File descriptors< 80%> 90%System resources
JVM heap usage< 70%> 85%Memory consumption

Additional Considerations for Kafka Integration:

When using ZooKeeper with Kafka:

  • [ ] Verify Kafka broker compatibility
  • [ ] Test metadata migration
  • [ ] Verify consumer group information integrity
  • [ ] Plan KRaft mode migration (Kafka 3.3+)

Automation Script Examples

Health Check Script:

#!/bin/bash
# zk-health-check.sh

ZK_HOSTS="zk1:2181,zk2:2181,zk3:2181"
for host in $(echo $ZK_HOSTS | tr "," "\n"); do
    response=$(echo "ruok" | nc ${host/:/ } 2>/dev/null)
    if [ "$response" != "imok" ]; then
        echo "ALERT: $host is not responding correctly"
        exit 1
    fi
done
echo "All ZooKeeper nodes are healthy"

Version Check Script:

#!/bin/bash
# check-zk-versions.sh

for host in zk1 zk2 zk3; do
    echo "=== $host ==="
    ssh $host "echo 'stat' | nc localhost 2181 | grep 'ZooKeeper version'"
done

 

 

8. Security Risks of EOL Versions

Continuing to use end-of-life ZooKeeper versions poses the following security risks:

Major Security Risks

  • CVE Patch Discontinuation: No patches provided for newly discovered security vulnerabilities
  • Log4j Vulnerabilities: Legacy versions may be exposed to Log4j-related CVEs
  • TLS/SSL Support: Lack of support for latest encryption standards

The 2021 Log4Shell vulnerability incident demonstrates how using outdated library versions can create serious security risks.

 

 

Apache ZooKeeper is critical distributed systems infrastructure, making version management essential. If you’re currently using EOL versions, establish an immediate upgrade plan.

Key Recommendations:

  • Use currently supported 3.8.x or 3.9.x versions
  • Establish regular version update planning
  • Monitor security patches and release notes
  • Thoroughly test in staging environments before production deployment

Through stable ZooKeeper operations, your distributed systems can provide more robust and reliable services.

 

 


Key References:

Additional Useful Links:

 

Leave a Reply