2016-07-19 102 views
0

我有一个非常简单的Hazelcast客户端,我正用它来连接集群实例。看到我连接到本地主机(127.0.0.1)以及远程服务器(xxx.xx.xx.x)。Hazelcast Connection拒绝地址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); 
} 

我已经打开端口5701-5710 CentOS的服务器(xxx.xx.xx.x)上,但我看到在日志中以下内容:

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 

正如你所看到的,连接到本地主机(127.0.0.1)没有问题,但无法连接到远程服务器xxx.xx.xx.x.我已经启用该端口通过CentOS的服务器上的防火墙5701

请特别注意下面一行访问: 信息:[127.0.0.1]:5701 [开发] [3.5.5]无法连接到:xxx.xx.xx.x/xxx.xx.xx.x:5701。原因:SocketException [连接拒绝地址xxx.xx.xx.x/xxx.xx.xx.x:5701]

+0

您是试图连接到已经运行的群集或添加另一个成员到群集?从代码块中,我看到你正在开始一个新的群集。除非您使用完全相同的配置在xxx.xx.xx.x:5701上启动节点,否则它将无法加入该节点以形成一个集群,而是会启动它自己的集群。 –

+0

如果你只是打算启动一个客户端,然后利用'ClientConfig'&ClientNetworkConfig'并开始使用'HazelcastClient.newHazelcastClient(clientConfig)' –

回答

0

你的配置看起来不错,但我认为它是一个伪代码,因为没有var -arg方法addMember。您可以多次调用addMember方法或使用setMembers方法添加几个成员。

您没有发布第一个节点的配置。你需要有相同的配置 - 包括集群名称和密码(如果你已经定义了它们)。

它也可能是一个防火墙问题 - 尝试做telnet xxx.xxxx.xxx.xx 5701以查看连接是否可以成功打开。

0

马特,

这就是你如何创建新的客户端

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

} 

随着API你使用,你刚开始成员在本地主机上。 您需要确保您在xxx.xx.xx.x:5701(默认端口)上运行Hazelcast成员。

谢谢