【问题标题】:JVM (Java Transport client) caches the IP address of the DNS entry AWSJVM(Java 传输客户端)缓存 DNS 条目 AWS 的 IP 地址
【发布时间】:2016-05-05 05:07:08
【问题描述】:

NoNodeAvailableException 可能与 ELB 的 IP 地址频繁更改但 JVM(Java 传输客户端)缓存 ELB 的 DNS 条目的 IP 地址有关。

问题是 AWS 上的 ELB 的 IP 可能会在我们无法控制的情况下更改一次。当它更改时,我们的系统失败并显示错误,指出没有找到节点的原因是 IP 被缓存,并且仍在尝试使用导致问题的相同 IP 进行查找。 为此,我得到了一个解决方案,即设置“networkaddress.cache.ttl”=“0”,这将告诉 JVM 不要缓存 IP。

我的问题是我如何模拟这种情况,因为更改 IP 不在我的控制范围内,任何人都可以建议我从代码中做一个聪明的方法(不是修复部分,而是测试部分)

【问题讨论】:

    标签: java amazon-web-services caching dns jvm


    【解决方案1】:

    我建议使用0 以外的值,因为否则每次建立连接时,都会被 DNS 请求淹没网络,并且在某些情况下会导致额外的延迟。使用介于 560 之间的数字是有意义的。

    如果您正在验证修复,您可以使用诸如 wireshark 之类的工具来监控网络并验证与服务器的持续连接是否正在针对该名称发出 DNS 请求和响应。如果您想编写自动化测试,则必须建立某种 DNS 基础设施,并与您的测试协调以在不同值之间循环。

    【讨论】:

      猜你喜欢
      • 2010-09-21
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 2011-10-22
      • 2016-08-11
      • 2019-01-14
      • 1970-01-01
      相关资源
      最近更新 更多