Java 在Hazelcast中,相同vpc实例的多播自动发现不起作用

Java 在Hazelcast中,相同vpc实例的多播自动发现不起作用,java,networking,amazon-web-services,multicast,hazelcast,Java,Networking,Amazon Web Services,Multicast,Hazelcast,我们已经打开了从5701到5709的TCP端口,还打开了54327的UDP端口,其中包括aws控制台中的入站和出站规则 在这两台机器的Hazelcast配置中,我们已将多播模式启用为true,将TCP/IP模式启用为false 并在iptables中添加了以下行 iptables -A INPUT -m pkttype --pkt-type multicast -j ACCEPT 但两台机器Hazelcast群集成员未连接。还有其他原因吗。请您提供是否还有其他遗漏点。亚马逊EC2网络不支持多播

我们已经打开了从5701到5709的TCP端口,还打开了54327的UDP端口,其中包括aws控制台中的入站和出站规则

在这两台机器的Hazelcast配置中,我们已将多播模式启用为true,将TCP/IP模式启用为false

并在iptables中添加了以下行

iptables -A INPUT -m pkttype --pkt-type multicast -j ACCEPT

但两台机器Hazelcast群集成员未连接。还有其他原因吗。请您提供是否还有其他遗漏点。

亚马逊EC2网络不支持多播通信。看


是否可以将Hazelcast配置为仅使用常规TCP或UDP通信实现群集?

首先尝试使用常规TCP/IP设置,以确保没有任何其他阻碍

一旦成功,请尝试以下内容(摘自Hazelcast手册)

如果您没有看到成员加入,则可能是因为多播不可用。原因可能是防火墙;您可以通过禁用防火墙或在防火墙中启用多播来测试这一点[请参阅防火墙部分]。另一个原因可能是它在网络上被禁用或网络不支持它。在*NIX环境中,您可以通过调用
ifconfig | grep-i multicast
检查您的网络接口是否支持多播,但这并不意味着它可用。 要检查多播是否可用,
iperf
是一个有用的工具,可用于Windows/*NIX/OSX。要使用多播组测试多播
224.2.2.3
,请在网络中打开终端1 2台机器,并在第一个终端中运行以下操作:

iperf -s -u -B 224.2.2.3 -i 1


在另一个终端。如果正在传输数据,则多播正在工作。

是。我们支持3种发现模式:tcp/ip、多播、ec2(它查找公共ip地址,然后使用tcp ip)。一旦发现阶段结束,内部通信将依赖于tcp/ip。感谢您澄清这一点!我在VPC中使用“AWS”发现插件的Hazelcast也有问题。正如我在下面的回答中所解释的:EC2实例上不提供多播。你是对的。我在他的问题中没有看到EC2部分。只有当我检查他的标签时,它才变得清晰。
iperf -c 224.2.2.3 -u -T 32 -t 3 -i 1