2017-06-19 29 views
0

我已創建了一個集羣Hazelcast在運行時

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); 

現在我hazelcast-client嘗試連接該集羣

HazelcastInstance clientInstance = null; 
try { 
    ClientConfig cfg = new ClientConfig(); 
    ClientNetworkConfig cnc = cfg.getNetworkConfig(); 
    // ip of cluster that i want to connect 
    cnc.addAddress(IP_CLUSTER); 
    clientInstance = HazelcastClient.newHazelcastClient(cfg); 
} 
catch (Exception e) { 
    return; 
} 

添加成員,當我嘗試連接的客戶端,我變得對客戶下面的輸出

2017年6月19日8:19:51 PM com.hazelcast.core.LifecycleService INFORMATION:[192。 2017年1月19日下午8:19:56 PM com.hazelcast.nio.tcp.SocketAcceptorThread信息: [192.168。]:5701 [dev] [3.7.8] [192.168.0.116]:5701 已啓動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]在/192.168.0.116:5701和/192.168.0.116:60200之間建立的套接字連接 2017年6月19日 8:19:56 PM com.hazelcast.client.impl.protocol .task.AuthenticationMessageTask INFORMATION:[192.168.0.116]:5701 [dev] [3.7.8]從 接收到auth連接[id = 1,/192.168.0.116:5701->/192.168.0.116:60200, 端點= NULL,活着=真,類型= JAVA_CLIENT],成功認證 ,主: ClientPrincipal {UUID = 'adaf4c23-a708-489b-9480-dfc7edf960ce', ownerUuid ='02d591cc-b572-4e6e-8904-92bd0d8c3610 '},所有者連接: true,客戶端版本:3.7.8 Jun 19,2017 8:20:07 PM com.hazelcast.internal.partition.impl.PartitionStateManager INFORMATION:[192.168.0.116]:5701 [dev] [3.7.8]正在初始化集羣 分區表排列...

表示 - >新成員連接到集羣。這是對的嗎?

但是當我要求對羣集成員的計數,它始終是1

在那裏我有一個錯誤? 如何將新成員(HazelcastInstances)添加到羣集?

回答

0

它真的奇怪的理解,但很多時間

excution
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); 

會有:

  • 第一執行 - 創建一個集羣,一個節點添加到它
  • 每次執行 - 將節點添加到現有羣集
+0

有什麼奇怪的呢?您至少需要一個已知成員地址才能加入羣集,也就是說,您開始的每個其他成員(並提交第一個成員的地址,即創建羣集的地址)將加入現有羣集。 – noctarius

1

正如你自己所提到的,你將Hazelcast客戶端連接到(單節點)羣集。客戶端只是一個客戶端,而不是一個集羣節點。將它想象成連接到數據庫的JDBC客戶端。要擴展集羣,您需要啓動其他Hazelcast成員。

HazelcastInstance hz = Hazelcast.newHazelcastInstance(); // <- creates nodes 

HazelcastInstance client = HazelcastClient.newHazelcastClient(); // <- creates a client 
+0

嗨。你是對的。但是如何在'cluster-client'上創建新的實例呢?配置在客戶端不可編輯 – anatoli

+0

不知道我得到您的問題。 – noctarius

+0

我想連接許多節點到羣集。我有10臺電腦在一個網絡中。在其中一個我創建一個羣集和其他人我想連接到羣集,每個pc shold有一個節點 – anatoli