I am looking at Apache Kafka v2.0.0 and I can't figure out what version of java it supports (OpenJDK or Oracle JDK's new lifecycle)? So far I have seen conflicting documentations. For example:
In Apache Kafka Documentation page it says: Java 1.8, however in their release notes for v2.0 I see the bug fixes and improvement like:
[KAFKA-6855] - Kafka fails to start with Java 10 due to faulty Java version detection
[KAFKA-5907] - Support aggregatedJavadoc in Java 9
Confluent v5.x documentation says they don't support 9 or 10
Java 1.9 and 1.10 are not currently supported in Confluent Platform. Later versions of Confluent Platform will support these Java versions.
but their CTO in Nov 2017 on this page says
"We now support Java 9, leading, significantly faster TLS and CRC32C implementations"
Knowing Oracle have taken a different lifecycle with their LTS OracleJDK and they are dropping support for 1.8. What is Kafka's decision in terms of java support? I can't figure it out from documentation. What am I missing here?
解决方案
Apache Kafka v2.0.0
From a security perspective, we recommend you use the latest released
version of JDK 1.8 as older freely available versions have disclosed
security vulnerabilities. LinkedIn is currently running JDK 1.8 u5
(looking to upgrade to a newer version) with the G1 collector.
Also, notable changes in 2.0.0 section mentions the following:
Support for Java 7 has been dropped, Java 8 is now the minimum version
required.
Oracle JDK is recommended but openJDK or Zulu should work fine for most cases as well.
Confluent Platform 5.0.x
For Confluent Kafka in particular,
Java 1.9 and 1.10 are not currently supported in Confluent Platform.
Later versions of Confluent Platform will support these Java versions.
and the minimum recommended version for Confluent 5.0.x (that comes with Kafka v2.0.0) is JDK 1.8 → u31 or later.