禁用 Java 虚拟机中的 DNS 缓存 - Amazon Neptune

禁用 Java 虚拟机中的 DNS 缓存

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

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

但是,GitHub 上的 Amazon Gremlin Java 客户端代码提供了更完整、更强大的负载均衡解决方案。Amazon Java Gremlin 客户端知道您的集群拓扑,并在您的 Neptune 集群中的一组实例之间公平地分配连接和请求。有关使用该客户端的 Java Lambda 函数示例,请参阅此博客文章