Tcp-IP 的 HazelCast 编程配置不在集群中添加成员
HazelCast Programmatic Configuration of Tcp-IP is no adding members in cluster
下面是文档中给出的 HazelCast 编程配置,但它无法在 HazelCast 集群中添加成员。
Config cfg = new Config();
Hazelcast.newHazelcastInstance(cfg);
cfg.setProperty("hazelcast.initial.min.cluster.size","3");
cfg.getGroupConfig().setName("DEV").setPassword("DEV-pass");
NetworkConfig network = cfg.getNetworkConfig();
JoinConfig join = network.getJoin();
TcpIpConfig tcpipConfig=join.getTcpIpConfig();
tcpipConfig.addMember("172.17.153.87").addMember("10.45.67.100")
.setRequiredMember("192.168.10.100").setEnabled(true);
network.getInterfaces().setEnabled(true).addInterface("10.45.67.*");
System.out.println(tcpipConfig.isEnabled());
System.out.println(tcpipConfig.getMembers());
MapConfig mapCfg = new MapConfig();
mapCfg.setName("testMap");
mapCfg.setBackupCount(2);
mapCfg.getMaxSizeConfig().setSize(10000);
mapCfg.setTimeToLiveSeconds(300);
MapStoreConfig mapStoreCfg = new MapStoreConfig();
mapStoreCfg.setClassName("com.hazelcast.examples.DummyStore").setEnabled(true);
mapCfg.setMapStoreConfig(mapStoreCfg);
NearCacheConfig nearCacheConfig = new NearCacheConfig();
nearCacheConfig.setMaxSize(1000).setMaxIdleSeconds(120).setTimeToLiveSeconds(300);
mapCfg.setNearCacheConfig(nearCacheConfig);
cfg.addMapConfig(mapCfg);
请查看代码,如果需要进一步修改以将成员添加到 hazelcast 集群,请告诉我
添加此行以关闭支持 TCP 的多播,
join.getMulticastConfig().setEnabled(false);
把这一行移到最后,
Hazelcast.newHazelcastInstance(cfg);
您应该在构建实例之前完成配置。
在 Windows 下,Hazelcast 的开箱即用配置(空 Config
)刚刚工作。
我只需要多次并行启动我的 Java 程序,Hazelcast 节点就会相互发现。
在 Linux 下,它更棘手:以下是一个 工作示例 - 只是 运行它的多个实例并行。
import java.util.*;
import com.hazelcast.config.*;
import com.hazelcast.core.*;
public class NewClass {
public static void main(String[] args) {
Config config = new Config();
config.getNetworkConfig().setPublicAddress("127.0.0.1")
.setPort(7771).setPortAutoIncrement(true);
JoinConfig join = config.getNetworkConfig().getJoin();
join.getMulticastConfig().setEnabled(false);
join.getAwsConfig().setEnabled(false);
join.getTcpIpConfig().setEnabled(true).setMembers(
Arrays.asList(
"127.0.0.1:7771",
"127.0.0.1:7772",
"127.0.0.1:7773"));
HazelcastInstance h = Hazelcast.newHazelcastInstance(config);
}
}
第三次执行后的输出:
[snip]
Members [3] {
Member [127.0.0.1]:7771 - 18f5aada-6f00-4077-814e-337517d5c1eb
Member [127.0.0.1]:7772 - e9e2e7fd-e2fe-4c56-80c5-6b499d07b2b9
Member [127.0.0.1]:7773 - 14fd377c-69fd-4c69-a9b8-086dd1cd7857 this
}
[snip]
下面是文档中给出的 HazelCast 编程配置,但它无法在 HazelCast 集群中添加成员。
Config cfg = new Config();
Hazelcast.newHazelcastInstance(cfg);
cfg.setProperty("hazelcast.initial.min.cluster.size","3");
cfg.getGroupConfig().setName("DEV").setPassword("DEV-pass");
NetworkConfig network = cfg.getNetworkConfig();
JoinConfig join = network.getJoin();
TcpIpConfig tcpipConfig=join.getTcpIpConfig();
tcpipConfig.addMember("172.17.153.87").addMember("10.45.67.100")
.setRequiredMember("192.168.10.100").setEnabled(true);
network.getInterfaces().setEnabled(true).addInterface("10.45.67.*");
System.out.println(tcpipConfig.isEnabled());
System.out.println(tcpipConfig.getMembers());
MapConfig mapCfg = new MapConfig();
mapCfg.setName("testMap");
mapCfg.setBackupCount(2);
mapCfg.getMaxSizeConfig().setSize(10000);
mapCfg.setTimeToLiveSeconds(300);
MapStoreConfig mapStoreCfg = new MapStoreConfig();
mapStoreCfg.setClassName("com.hazelcast.examples.DummyStore").setEnabled(true);
mapCfg.setMapStoreConfig(mapStoreCfg);
NearCacheConfig nearCacheConfig = new NearCacheConfig();
nearCacheConfig.setMaxSize(1000).setMaxIdleSeconds(120).setTimeToLiveSeconds(300);
mapCfg.setNearCacheConfig(nearCacheConfig);
cfg.addMapConfig(mapCfg);
请查看代码,如果需要进一步修改以将成员添加到 hazelcast 集群,请告诉我
添加此行以关闭支持 TCP 的多播,
join.getMulticastConfig().setEnabled(false);
把这一行移到最后,
Hazelcast.newHazelcastInstance(cfg);
您应该在构建实例之前完成配置。
在 Windows 下,Hazelcast 的开箱即用配置(空 Config
)刚刚工作。
我只需要多次并行启动我的 Java 程序,Hazelcast 节点就会相互发现。
在 Linux 下,它更棘手:以下是一个 工作示例 - 只是 运行它的多个实例并行。
import java.util.*;
import com.hazelcast.config.*;
import com.hazelcast.core.*;
public class NewClass {
public static void main(String[] args) {
Config config = new Config();
config.getNetworkConfig().setPublicAddress("127.0.0.1")
.setPort(7771).setPortAutoIncrement(true);
JoinConfig join = config.getNetworkConfig().getJoin();
join.getMulticastConfig().setEnabled(false);
join.getAwsConfig().setEnabled(false);
join.getTcpIpConfig().setEnabled(true).setMembers(
Arrays.asList(
"127.0.0.1:7771",
"127.0.0.1:7772",
"127.0.0.1:7773"));
HazelcastInstance h = Hazelcast.newHazelcastInstance(config);
}
}
第三次执行后的输出:
[snip]
Members [3] {
Member [127.0.0.1]:7771 - 18f5aada-6f00-4077-814e-337517d5c1eb
Member [127.0.0.1]:7772 - e9e2e7fd-e2fe-4c56-80c5-6b499d07b2b9
Member [127.0.0.1]:7773 - 14fd377c-69fd-4c69-a9b8-086dd1cd7857 this
}
[snip]