Я смотрю на Apache Kafka v2.0.0 и не могу понять, какую версию java он поддерживает (новый жизненный цикл OpenJDK или Oracle JDK)? До сих пор я видел противоречивые документы. Например: На странице документации Apache Kafka написано: Java 1.8, однако в примечаниях к выпуску для v2.0 я вижу исправления ошибок и улучшения, например:
- [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 документация говорит, что они не поддерживают 9 или 10
Java 1.9 and 1.10 are not currently supported in Confluent Platform. Later versions of Confluent Platform will support these Java versions.
но их технический директор в ноябре 2017 года на эта страница сказал
"We now support Java 9, leading, significantly faster TLS and CRC32C implementations"
Зная, что Oracle взяла другой жизненный цикл со своим LTS OracleJDK, они отказываются от поддержки 1.8. Какое решение принял Кафка с точки зрения поддержки java? Я не могу понять это из документации. Что мне здесь не хватает?




Официальная документация Apache Kafka вполне ясно об этом говорит:
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.
Также в разделе заметные изменения в 2.0.0 упоминается следующее:
Support for Java 7 has been dropped, Java 8 is now the minimum version required.
Рекомендуется Oracle JDK, но openJDK или Zulu также должны работать нормально в большинстве случаев.
В частности, для Confluent Kafka,
Java 1.9 and 1.10 are not currently supported in Confluent Platform. Later versions of Confluent Platform will support these Java versions.
а минимальная рекомендуемая версия для Confluent 5.0.x (которая поставляется с Kafka v2.0.0) - JDK 1.8 → u31 или новее.
Я уже упоминал об этих документах в своем вопросе. Мой вопрос вращается вокруг противоречий, которые дают эти документы. пожалуйста, прочтите вопрос полностью еще раз.
Confluent - это другой «дистрибутив» Кафки. Вы используете Confluent Kafka или ванильный Apache Kafka?
Я понимаю разницу, однако мои вопросы связаны с окончанием срока службы поддержки Oracle JDK для версии 1.8. Оба дистрибутива не учитывают новый жизненный цикл Java.
Как я уже упоминал в своем ответе, вы все еще можете использовать openJDK.
Блог Нехи Нархеде относится только к Kafka, а не к Confluent Platform. Как и большинство компаний, использующих модель продажи услуг проекту с открытым исходным кодом, надстройки Confluent удовлетворяют потребности своих клиентов. Поскольку большинство клиентов, вероятно, используют 1.8, бизнесу пока нет необходимости поддерживать 9 или 10.
Однако проект с открытым исходным кодом должен учитывать поддержку EOL в Java. Вы можете увидеть это в JIRA.
Apache Kafka 2.1.0 и новее поддерживают Java 11:
https://issues.apache.org/jira/browse/KAFKA-7264
Была исправлена устаревшая страница документации (скоро сайт обновится):
Последнее обновление от августа 2021 г. Согласно этому: https://docs.confluent.io/platform/current/installation/versions-interoperability.html
Java 8 and Java 11 are supported in this version of Confluent Platform. Starting with Confluent Platform 5.0, the minimum required version is Java 8. Java 7 or earlier versions are no longer supported. Java 9 and 10 are not supported in Confluent Platform as those versions are short-term rapid release versions.
Confluent Platform 5.0 maps to Apache Kafka 2.0.x
Есть разница между «поддерживается» и «работать с». Позднее это билеты JIRA. В первом случае используется термин поддержки предприятия.