禁用 Java 虚拟机中的 DNS 缓存 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

禁用 Java 虚拟机中的 DNS 缓存

在一个环境中,如果您希望跨多个线程只读副本实现请求的负载均衡,则需要禁用 Java 虚拟机 (JVM) 中的 DNS 缓存并在创建集群时提供 Neptune 的读取终端节点。禁用 JVM DNS 缓存可以确保为每个新连接重新解析 DNS,以在所有只读副本之间分配连接请求。您可以通过以下行在应用程序的初始化代码中执行此操作:

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

但是,为负载平衡提供了一个更完整、更强大的解决方案由亚马逊 Gremlin Java 客户端代码(位于 GitHub 上)。Amazon Java Gremlin 客户端了解您的集群拓扑,并在 Neptune 集群中的一组实例之间公平分配连接和请求。请参阅本博客帖子查看使用该客户端的 Java Lambda 函数示例。