2016-07-19 21 views
0

Ich habe einen sehr einfachen Hazelcast-Client, den ich verwende, um eine Verbindung zu einem gruppierten Instace herzustellen. Beachten Sie, dass ich eine Verbindung mit localhost (127.0.0.1) und einem Remote-Server (xxx.xx.xx.x) herstelle.Hazelcast-Verbindung verweigert Adresse x

public HazelcastCacheClient(String mapName, Map<K,V> cacheMap) { 

    Config cfg = new Config(); 
    NetworkConfig networkConfig = cfg.getNetworkConfig(); 
    networkConfig.setPort(5701); 
    networkConfig.setPortCount(1); 

    JoinConfig joinConfig = networkConfig.getJoin(); 
    joinConfig.getMulticastConfig().setEnabled(false); 
    joinConfig.getAwsConfig().setEnabled(false); 
    joinConfig.getTcpIpConfig() 
        .addMember("127.0.0.1, xxx.xx.xx.x").setEnabled(true); 

    HazelcastInstance instance = Hazelcast.newHazelcastInstance(cfg); 

    Map<String, Integer> map = instance.getMap(mapName); 
} 

Ich habe Ports geöffnet 5701-5710 auf der CentOS-Server (xxx.xx.xx.x), aber die folgenden in den Protokollen sehe:

com.hazelcast.instance.DefaultAddressPicker 
INFO: [LOCAL] [dev] [3.5.5] Resolving domain name 'xxx.xx.xx.x' to address(es): [xxx.xx.xx.x] 
com.hazelcast.instance.DefaultAddressPicker 
INFO: [LOCAL] [dev] [3.5.5] Interfaces is disabled, trying to pick one address from TCP-IP config addresses: [xxx.xx.xx.x/xxx.xx.xx.x, 127.0.0.1] 
com.hazelcast.instance.DefaultAddressPicker 
INFO: [LOCAL] [dev] [3.5.5] Picked Address[127.0.0.1]:5701, using socket ServerSocket[addr=/0:0:0:0:0:0:0:0,localport=5701], bind any local is true 
com.hazelcast.spi.OperationService 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Backpressure is disabled 
com.hazelcast.spi.impl.operationexecutor.classic.ClassicOperationExecutor 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Starting with 4 generic operation threads and 8 partition operation threads. 
com.hazelcast.system 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Hazelcast 3.5.5 (20160122 - 6805b8e) starting at Address[127.0.0.1]:5701 
com.hazelcast.system 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Copyright (c) 2008-2015, Hazelcast, Inc. All Rights Reserved. 
com.hazelcast.instance.Node 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Creating TcpIpJoiner 
com.hazelcast.core.LifecycleService 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Address[127.0.0.1]:5701 is STARTING 
com.hazelcast.nio.tcp.SocketConnector 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Connecting to xxx.xx.xx.x/xxx.xx.xx.x:5701, timeout: 0, bind-any: true 
com.hazelcast.nio.tcp.SocketConnector 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Connecting to xxx.xx.xx.x/xxx.xx.xx.x, timeout: 0, bind-any: true 
com.hazelcast.nio.tcp.SocketConnector 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Connecting to /127.0.0.1:5703, timeout: 0, bind-any: true 
com.hazelcast.nio.tcp.SocketConnector 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Connecting to /127.0.0.1:5702, timeout: 0, bind-any: true 
com.hazelcast.nio.tcp.SocketConnector 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Connecting to xxx.xx.xx.x/xxx.xx.xx.x:5703, timeout: 0, bind-any: true 
com.hazelcast.nio.tcp.SocketConnector 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Could not connect to: /127.0.0.1:5702. Reason: SocketException[Connection refused to address /127.0.0.1:5702] 
com.hazelcast.nio.tcp.SocketConnector 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Could not connect to: /127.0.0.1:5703. Reason: SocketException[Connection refused to address /127.0.0.1:5703] 
com.hazelcast.cluster.impl.TcpIpJoiner 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Address[127.0.0.1]:5702 is added to the blacklist. 
com.hazelcast.cluster.impl.TcpIpJoiner 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Address[127.0.0.1]:5703 is added to the blacklist. 
com.hazelcast.nio.tcp.SocketConnector 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Could not connect to: xxx.xx.xx.x/xxx.xx.xx.x:5701. Reason: SocketException[Connection refused to address xxx.xx.xx.x/xxx.xx.xx.x:5701] 
com.hazelcast.cluster.impl.TcpIpJoiner 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Address[xxx.xx.xx.x]:5701 is added to the blacklist. 
com.hazelcast.cluster.impl.TcpIpJoiner 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] 


Members [1] { 
    Member [127.0.0.1]:5701 this 
} 

Jul 19, 2016 12:32:45 AM com.hazelcast.core.LifecycleService 
INFO: [127.0.0.1]:5701 [dev] [3.5.5] Address[127.0.0.1]:5701 is STARTED 

Wie Sie sehen können, Es gibt keine Probleme beim Herstellen einer Verbindung mit localhost (127.0.0.1), aber es kann keine Verbindung zum fernen Server xxx.xx.xx.x hergestellt werden. Ich habe den Anschluss aktiviert für 5701.

Hinweis durch die Firewall auf dem CentOS-Server zugegriffen werden soll, die folgende Zeile insbesondere: INFO: [127.0.0.1]: 5701 [dev] [3.5.5] Konnte nicht verbinden mit: xxx.xx.xx.x/xxx.xx.xx.x: 5701. Grund: Socket [Connection refused Adresse xxx.xx.xx.x/xxx.xx.xx.x: 5701]

+0

Versuchen Sie, sich mit einem bereits laufenden Cluster zu verbinden oder ein anderes Mitglied zu einem Cluster hinzuzufügen? Aus dem Code-Chunk sehe ich, dass Sie selbst einen neuen Cluster starten. Sofern Sie nicht genau die gleiche Konfiguration verwendet haben, um den Knoten unter xxx.xx.xx.x.x: 5701 zu starten, kann er nicht zu diesem Cluster hinzugefügt werden, um einen Cluster zu bilden, und stattdessen wird sein eigener Cluster gestartet. –

+0

Wenn Sie nur einen Client starten möchten, verwenden Sie 'ClientConfig' &' ClientNetworkConfig' und starten Sie 'HazelcastClient.newHazelcastClient (clientConfig)' –

Antwort

0

Ihre Config sieht gut aus, aber ich nehme an, es ist ein Pseudo-Code, da keine da ist var -arg Methode addMember. Sie können die Methode addMember mehrmals aufrufen oder die Methode setMembers verwenden, um ein paar Mitglieder hinzuzufügen.

Sie haben die Konfiguration des ersten Knotens nicht veröffentlicht. Sie benötigen identische Konfigurationen - einschließlich des Clusternamens und des Kennworts (sofern Sie sie definiert haben).

Es kann auch noch ein Firewall-Problem sein - versuchen Sie telnet xxx.xxxx.xxx.xx 5701 zu sehen, ob die Verbindung erfolgreich geöffnet werden kann.

0

Matt,

Dies ist, wie Sie neue Client

import com.hazelcast.client.HazelcastClient; 
import com.hazelcast.client.config.ClientConfig; 

public void HazelcastCacheClient(String mapName, Map cacheMap) { 

    ClientConfig cfg = new ClientConfig(); 
    cfg.getNetworkConfig().addAddress("xxx.xx.xx.x"); 

    HazelcastInstance instance = HazelcastClient.newHazelcastClient(cfg); 

    cacheMap = instance.getMap(mapName); 

} 

Mit API erstellen können, die Sie verwenden, die Sie gerade Mitglied auf localhost starten. Sie müssen sicherstellen, dass Sie Hazelcast-Mitglied unter xxx.xx.xx.x:5701 (Standardport) ausführen.

Vielen Dank

Verwandte Themen