Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java IP多播在GridGain中不工作_Java_Gridgain - Fatal编程技术网

Java IP多播在GridGain中不工作

Java IP多播在GridGain中不工作,java,gridgain,Java,Gridgain,如果使用默认的GridTcpDiscoveryMulticastIpFinder,GridGain节点不会相互发现 如何设置?通常当节点无法相互看到时,意味着IP多播无法在网络上正常工作。让IP多播正常工作有时是一项挑战。GridGain网格使用IP多播查找节点发现的IP地址GridTcpDiscoveryMulticastIpFinder是默认的IP查找器 启用IP多播时,以下提示可能有用: 地址 IP多播使用介于224.0.0.0和239.255.255.255 地址[0-9]。不应使用0

如果使用默认的
GridTcpDiscoveryMulticastIpFinder
,GridGain节点不会相互发现


如何设置?

通常当节点无法相互看到时,意味着IP多播无法在网络上正常工作。让IP多播正常工作有时是一项挑战。GridGain网格使用IP多播查找节点发现的IP地址
GridTcpDiscoveryMulticastIpFinder
是默认的IP查找器

启用IP多播时,以下提示可能有用:

地址

  • IP多播使用介于
    224.0.0.0
    239.255.255.255
  • 地址
    [0-9]。不应使用0.0.1
防火墙

大多数操作系统都默认配置了软件防火墙。如果您已经有了硬件防火墙,那么很可能您不需要操作系统附带的防火墙。尝试禁用它,看看IP多播是否开始工作

如果禁用操作系统防火墙不是一个选项,那么您应该将防火墙配置为接受并正确路由IP多播数据包

SELinux和iptables

我们注意到,至少在FedoraCore9中,多播不能与默认的SELinux配置一起工作。因此,要使其正常工作,您需要正确配置SELinux或更好地禁用它

此外,如果您的计算机未直接暴露于Internet(位于路由器或防火墙后面),我们建议在Linux上禁用
iptables
ip6tables
服务

添加IP多播路由

系统应至少有一条IP多播流量路由。您可以为所有多播流量添加路由以使用正确的路由(Linux示例):

请注意,如果有多个IP多播应用程序,则需要为特定IP多播地址配置路由

IPv4和IPv6

如果您的操作系统支持IPv6,Java应用程序可能会尝试通过IPv6路由IP多播流量。使用
java.net.preferIPv4Stack=true
系统属性来防止出现这种情况

本地网络

如果您没有安装网络,那么您的IP多播数据包很可能会被路由到ISP路由器,而ISP路由器可能正在阻止它们。尝试在本地机箱上启用环回IP多播,以便在本地机箱上启动的多个网格节点可以看到彼此

多个接口

这个问题在JGroups中最为常见。尝试将IP地址添加到操作系统上的主机文件中(例如Unix/Linux上的
/etc/hosts/
),然后重新启动网络。另外,在JGroups配置文件或
GridTcpDiscoverySpi
中指定本地IP地址作为本地绑定配置参数,具体取决于您用于启动网格的SPI

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0