Java 虚拟机

你应该始终运行最新版本的 Java 虚拟机( JVM ), 除非 Elasticsearch 网站上另有说明。 Elasticsearch, 特别是 Lucene,是一个高要求的软件。Lucene 的单元测试和集成测试经常暴露出 JVM 本身的 bug。这些 bug 的范围从轻微的麻烦到严重段错误,所以,最好尽可能的使用最新版本的 JVM。

Java 8 强烈优先选择于 Java 7。不再支持 Java 6。Oracle 或者 OpenJDK 是可以接受的,它们在性能和稳定性也差不多。

如果你的应用程序是用 Java 编写并正在使用传输客户端(注:Transport Client,下同)或节点客户端(注:Node Client,下同),请确保运行你应用程序的 JVM 和服务器的 JVM 是完全一样的。 在 Elasticsearch 的几个地方,使用 Java 的本地序列化( IP 地址、异常等等)。不幸的是,Oracle 的 JVM 在几个小版本之间有修改序列化格式,从而导致奇怪的错误。 这种情况很少见,但最佳实践是客户端和服务器使用相同版本 JVM。