有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

连接到127.0.0.1的java间歇性故障,连接到IP(eth0)时没有故障

我在tomcat(7.0.53)、oracle jvm(1.7.x)和CentOS(6.5)上运行了一个基于servlet的应用程序。 有一个脚本可以通过向应用程序发出GET请求(每10秒)来定期“检查”应用程序

我遇到了以下问题:

在正常(中等)负载(约4k并行连接)下,一些健全性检查会因连接超时而失败(大约每10到20次请求失败一次)。 客户端上配置的连接超时为120秒。 只有当连接到127.0.0.1(环回)时才会发生这种情况,连接到真正的lan接口(eth0)的<IP>没有这个问题*。 所以:

curl <args> http://127.0.0.1:<port>失败

curl <args> http://1.2.3.4:<port>不会失败

运行tcpdump表明服务器端在失败的情况下不会发回SYN-ACK

注意:出于好奇,我禁用了IPv6支持(net.ipv6.conf.all.disable_ipv6 = 1),问题消失了。 之前,没有使用IPv6,但环回(lo)接口的IPv6已初始化,应用程序已绑定到所有可用接口(127.0.0.1::1<IP>)。 在eth接口上,IPv6根本没有初始化

这种行为的可能原因是什么

对进一步解决这个问题有什么想法吗


共 (0) 个答案