

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 禁用 Java 虚拟机中的 DNS 缓存
<a name="best-practices-gremlin-java-disable-dns-caching"></a>

[在您想要在多个只读副本之间平衡请求的环境中，您需要在 Java 虚拟机 (JVM) 中禁用 DNS 缓存，并在创建集群对象时提供 Neptune 的读取器终端节点。](https://tinkerpop.apache.org/javadocs/current/core/org/apache/tinkerpop/gremlin/driver/Cluster.html)禁用 JVM DNS 缓存可以确保为每个新连接重新解析 DNS，以在所有只读副本之间分配连接请求。可以在应用程序的初始化代码中使用以下行执行此操作：

```
java.security.Security.setProperty("networkaddress.cache.ttl", "0");
```

但是，上面的 A [mazon Gremlin Java](https://github.com/awslabs/amazon-neptune-tools/tree/master/neptune-gremlin-client) 客户端代码提供了更完整、更强大的负载平衡解决方案。 GitHubAmazon Java Gremlin 客户端知道您的集群拓扑，并在您的 Neptune 集群中的一组实例之间公平地分配连接和请求。有关使用该客户端的 Java Lambda 函数示例，请参阅[此博客文章](https://aws.amazon.com/blogs/database/load-balance-graph-queries-using-the-amazon-neptune-gremlin-client/)。