0

如果我使用 GridGain 节点,则不会发现彼此GridTcpDiscoveryMulticastIpFinder,这是默认设置。

如何设置?

4

1 回答 1

1

通常,当节点无法看到彼此时,意味着 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

我们注意到,至少在 Fedora Core 9 中,多播不适用于默认的 SELinux 配置。因此,要使其正常工作,您需要正确配置 SELinux 或更好地禁用它。

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

添加 IP 组播路由

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

route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

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

IPv4 和 IPv6

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

本地网络

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

多个接口

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

于 2014-02-10T09:40:44.490 回答