Java Hazelcast在运行时添加成员
我已经创建了一个集群 私有静态最终字符串IP_CLUSTER=“192.168.0.116:5701”; Config cfg=new Config(); //设置集群的IP地址 getNetworkConfig().getJoin().GetTcpConfig().addMember(IP_集群).setEnabled(true); cfg.getNetworkConfig().getJoin().getMulticastConfig().setEnabled(false); HazelcastInstance=Hazelcast.newHazelcastInstance(cfg); 现在我尝试使用hazelcast客户端连接这个集群Java Hazelcast在运行时添加成员,java,cluster-computing,hazelcast,Java,Cluster Computing,Hazelcast,我已经创建了一个集群 私有静态最终字符串IP_CLUSTER=“192.168.0.116:5701”; Config cfg=new Config(); //设置集群的IP地址 getNetworkConfig().getJoin().GetTcpConfig().addMember(IP_集群).setEnabled(true); cfg.getNetworkConfig().getJoin().getMulticastConfig().setEnabled(false); Hazelcas
HazelcastInstance clientInstance=null;
试一试{
ClientConfig cfg=new ClientConfig();
ClientNetworkConfig cnc=cfg.getNetworkConfig();
//我要连接的群集的ip
cnc.addAddress(IP_集群);
clientInstance=HazelcastClient.newHazelcastClient(cfg);
}
捕获(例外e){
回来
}
当我尝试连接客户机时,我会在输出之后进入客户机
2017年6月19日晚上8:19:51 com.hazelcast.core.LifecycleService
资料:[192.168.0.116]:5701[dev][3.7.8][192.168.0.116]:5701
开始于2017年6月19日晚上8:19:56
com.hazelcast.nio.tcp.socketacceptor读取信息:
[192.168.0.116]:5701[dev][3.7.8]接受来自的套接字连接
/192.168.0.116:60200 2017年6月19日晚上8:19:56
com.hazelcast.nio.tcp.TcpIpConnectionManager信息:
[192.168.0.116]:5701[dev][3.7.8]已建立套接字连接
在2017年6月19日/192.168.0.116:5701和/192.168.0.116:60200之间
晚上8:19:56
com.hazelcast.client.impl.protocol.task.AuthenticationMessageTask
信息:[192.168.0.116]:5701[dev][3.7.8]已收到来自的验证
连接[id=1,/192.168.0.116:5701->/192.168.0.116:60200,
endpoint=null,alive=true,type=JAVA\u CLIENT],成功
经认证的,委托人:
客户端主体{uuid='adaf4c23-a708-489b-9480-dfc7edf960ce',
所有者UID='02d591cc-b572-4e6e-8904-92bd0d8c3610',所有者连接:
正确,客户端版本:3.7.8 2017年6月19日晚上8:20:07
com.hazelcast.internal.partition.impl.PartitionStateManager
信息:[192.168.0.116]:5701[dev][3.7.8]正在初始化群集
分区表排列
表示->新成员已连接到群集。对吗
但当我要求计算集群上的成员数时,它总是1
我哪里出错了?
如何将新成员(
Hazelcast实例
)添加到集群?正如您所提到的,您已将Hazelcast客户端连接到(一个节点)集群。客户机只是客户机,而不是群集节点。将其想象为连接到数据库的JDBC客户机。要扩展集群,您需要启动其他Hazelcast成员
HazelcastInstance hz = Hazelcast.newHazelcastInstance(); // <- creates nodes
HazelcastInstance client = HazelcastClient.newHazelcastClient(); // <- creates a client
HazelcastInstance hz=Hazelcast.newHazelcastInstance();// 理解起来真的很奇怪,但很多时候
private static final String IP_CLUSTER = "192.168.0.116:5701";
Config cfg = new Config();
// set IP of cluster
cfg.getNetworkConfig().getJoin().getTcpIpConfig().addMember(IP_CLUSTER).setEnabled(true);
cfg.getNetworkConfig().getJoin().getMulticastConfig().setEnabled(false);
HazelcastInstance instance = Hazelcast.newHazelcastInstance(cfg);
将有:
- 第一次执行-创建集群并向其中添加一个节点
- 每下一次执行—向现有集群添加一个节点
你好。你说得对。但是如何在集群客户机上创建新实例呢?客户端上的配置不可编辑不确定我是否了解您的问题。我想将多个节点连接到群集。我有10台电脑在一个网络中。在其中一台上我创建了一个集群,在另一台上我想连接到集群,每台pc都应该有一个节点。只需创建更多节点并设置至少一个其他(可访问)节点的ip地址。这有什么奇怪的?您至少需要一个已知成员地址才能加入群集,也就是说,您启动的每个其他成员(并提交创建群集的第一个成员的地址)都将加入现有群集。