我们已经打开了5701到5709的TCP端口,也打开了54327的UDP端口,其中包括在aws控制台的入站和出站规则。
我们已经在两台机器的Hazelcast配置中启用了多播模式为真,TCP/IP模式为假。
还在iptables
中添加了以下行iptables -A INPUT -m pkttype --pkt-type multicast -j ACCEPT
但是两台机器没有连接Hazelcast集群成员。还有其他原因吗?能否提供一下这里是否还有遗漏的地方
Amazon EC2网络不支持多播通信。参见http://aws.amazon.com/vpc/faqs/。
是否可以配置Hazelcast来实现仅使用常规TCP或UDP流量的集群?
首先尝试常规TCP/IP设置,以确保没有其他障碍。
一旦工作,尝试以下(来自Hazelcast书)
如果您没有看到成员加入,那么很可能是因为组播不可用。原因可以是防火墙;您可以通过禁用防火墙或在防火墙中启用多播来测试这一点[参见防火墙部分]。另一个原因可能是它在网络上被禁用或网络不支持它。在*NIX环境中,您可以通过调用ifconfig | grep -i multicast
来检查您的网络接口是否支持多播,但这并不意味着它是可用的。为了检查组播是否可用,iperf
是一个有用的工具,可用于Windows/*NIX/OSX。要使用multicast-group 224.2.2.3
测试组播,在网络中的两台机器中打开一个终端,并在第一个终端中运行以下命令:
iperf -s -u -B 224.2.2.3 -i 1
和
iperf -c 224.2.2.3 -u -T 32 -t 3 -i 1
在另一个终端。