我应该在 Cassandra 2.0 中使用什么版本的 Java?

What version of Java should I use with Cassandra 2.0?

Cassandra 2.0.12 和 Datastax Enterprise 4.6 均推荐使用 Oracle Java SE 7。但是,Java SE 7 的 public 更新将在 2015 年 4 月停止,这意味着安全更新和如果没有与 Oracle 的支持合同,将无法修复错误。

我的首选是 OpenJDK,以避免与 Oracle 的点击许可相关的法律纠纷(从技术上讲我可以避免这个问题,但在法律上我不能)。不过'reasons'好像不推荐OpenJDK。我只能看到它不起作用的次要原因(在版本字符串中使用字符串 'icedtea')并且没有最近的讨论,所以我假设它没有被测试并且应该避免。

我应该使用 Oracle Java SE 8、OpenJDK 7、OpenJDK 8 或其他变体进行新部署吗?

如果可以的话,我建议您使用 DataStax 推荐的版本。虽然其他 JDK 变体和版本可能会起作用,但使用 QA 正在积极测试和社区中其他人正在使用的东西是有意义的。如果您使用的是 OpenJDK 或非 Oracle JVM (code),Cassandra 甚至会警告您。

您应该能够使用 OpenJDK 7,但请注意您可能会遇到堆、加载、内核错误等各种问题。关于 Java8, Cassandra 2.0 无法在 Java 8 (CASSANDRA-7028) 上编译,但您应该可以 运行 使用它。