Bry*_*eld 4 java connection dns failover tcp
如果我使用连接new Socket("unit.domain.com", 100)并且unit.domain.comDNS记录在A记录中有多个IP地址..如果连接失败,Java是否会像浏览器一样自动连接到列表中的其他地址之一?还是必须手动实施?
没有!通过新的Socket(String,int)创建套接字会导致类似的解析
addr = InetAddress.getByName(hostname);
Run Code Online (Sandbox Code Playgroud)
这是一个快捷方式
return InetAddress.getAllByName(host)[0];
Run Code Online (Sandbox Code Playgroud)
地址解析在Socket c-tor中执行.
如果必须重新连接(故障转移),请使用InetAddress.getAllByName(host)返回的结果,随机化(或使用循环法)并连接到必要的地址.
编辑:如果你需要连接一些可能的失败,你最好使用Socket类的connect方法和超时.还要确保关闭甚至发生故障的插槽(尤其是通道),因为它们可能会泄漏*Nix上的FD.
| 归档时间: |
|
| 查看次数: |
1854 次 |
| 最近记录: |