知识库

将 Java Runtime 11 与 Neo4j 3.5.x 结合使用

Neo4j 3.5.x 支持使用 Java 11 作为运行时环境,但是自定义代码仍应针对 Java 8 进行编译。最佳实践是,建议在受支持的组件(虚拟机管理程序、操作系统、Java 虚拟机)上维护您的基础架构环境。在此示例中,我们将向您展示如何在 Linux 上将 Java JDK 从版本 8 升级到 Java JDK 11。

Java JDK 11 安装

第一步是安装 Java 11,您可以参考您偏好的供应商说明。我们建议使用 JDK 以便在生产环境中运行 Neo4j。当与 Neo4j 支持团队沟通时,可能需要使用 Java 诊断命令。

  • neo4j-admin report 命令需要 JDK。

  • jstackjmap 将堆内存转储到文件中,可以用来排查问题。

  • jfr:用于从正在运行的 Java 应用程序中收集诊断和性能分析数据的性能分析工具。自 Java 11 起免费提供。

在此阶段,仍将使用 Java 8。允许在同一台机器上安装多个 JVM。

java -version 仍将显示 Java 8。

将 Java 11 设置为默认

要将 Java 11 运行时设置为默认,

对于 RedHat, CentOS, Fedora, Amazon AMI:运行 sudo alternatives --config java 对于基于 Debian 的系统,如 Debian, Ubuntu, Suse:运行 sudo update-alternatives --config java

选择正确的版本并按回车键。此示例中有 2 个已安装的提供 'java' 的二进制文件

$ sudo alternatives --config java

Selection    Command
1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.amzn2.0.1.x86_64/jre/bin/java)
2           /usr/lib/jvm/java-11-amazon-corretto/bin/java

选择第二个选项并按回车键确认。

java -version 现在应该显示 Java 11。

编辑 Neo4j.conf

  • 注释掉或移除以下行

dbms.logs.gc.options=-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintPromotionFailure -XX:+PrintTenuringDistribution
  • 取消注释以下设置

dbms.logs.gc.options=-Xlog:gc,safepoint,age=trace

启动 Neo4j

您会立即在 neo4j.log 中看到警告消息,如下所示,您可以安全地忽略它们

WARNING: Please consider reporting this to the maintainers of org.eclipse.collections.impl.utility.ArrayListIterate
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
© . All rights reserved.