为了让 Apache Ignite 形成一个多节点集群,节点需要相互了解。这可以使用 ip 多播来实现。在 Ignite 中执行此操作的类是TcpDiscoveryMulticastIpFinder,它具有属性“mulitcastGroup”,它实际上是一个 tcp/ip 多播地址,集群上的节点将使用它来发现彼此。如果使用TcpDiscoveryMulticastIpFinder而不指定多播组,它将使用默认值 228.1.2.4,如下面的代码片段所示:
public class TcpDiscoveryMulticastIpFinder extends TcpDiscoveryVmIpFinder {
/** Default multicast IP address (value is {@code 228.1.2.4}). */
public static final String DFLT_MCAST_GROUP = "228.1.2.4";
//code ommitted ...
}
但是,多播的 IPv4规范表明,应该使用 239.0.0.0-239.255.255.255 范围内的多播地址来实现本地管理的 ad-hoc 目的。该规范没有明确定义如何处理以 228 开头的多播地址。Apache Ignite 使用 228.1.2.4 是否有任何特殊原因,或者这是一个偶然的选择,而不是一个疯狂的选择。我应该使用默认组还是更喜欢 239.0.0.0-239.255.255.255 范围内的一个?