【发布时间】:2018-03-27 23:56:33
【问题描述】:
在我们的系统中,我们有一个由 2 个节点组成的 Hazelcast 集群。 Hazelcast 拒绝与其他成员建立联系。 可能是什么原因?
在我看到的日志文件中:
2017-10-13 17:39:25,419 [T:B_Hazelcast.IO.thread-Acceptor, C:] INFO c.h.n.tcp.SocketAcceptorThread | [10.15.162.50]:5701 [ESB_Hazelcast] [3.7.2] **Accepting socket connection** from /10.15.162.51:33497
2017-10-13 17:39:25,420 [T:_ESB_Hazelcast.cached.thread-5, C:] INFO c.h.n.t.TcpIpConnectionManager | [10.15.162.50]:5701 [ESB_Hazelcast] [3.7.2] **Established socket connection** between /10.15.162.50:5701 and /10.15.162.51:33497
2017-10-13 17:39:25,428 [T:ity-generic-operation.thread-0, C:] INFO c.h.c.i.p.t.AuthenticationMessageTask | [10.15.162.50]:5701 [ESB_Hazelcast] [3.7.2] Received auth from Connection[id=12, /10.15.162.50:5701->/10.15.162.51:33497, endpoint=null, alive=true, type=JAVA_CLIENT], **successfully authenticated**, principal : ClientPrincipal{uuid='39851f2a-cc6e-4bbb-be33-603352b2aaa6', ownerUuid='126694e3-daee-4999-8afc-870f1cd9da2e'}, owner connection : true
2017-10-13 17:39:25,512 [T:ity-generic-operation.thread-0, C:] WARN
c.h.c.i.o.ClientReAuthOperation | [10.15.162.50]:5701 [ESB_Hazelcast] [3.7.2] com.hazelcast.spi.exception.**CallerNotMemberException: Not Member!** this: [10.15.162.50]:5701, caller: [10.15.162.51]:5701, partitionId: -1, operation: com.hazelcast.client.impl.operations.ClientReAuthOperation, service: hz:core:clientEngine
服务器被实例化
public static HazelcastInstance createServer(Environment env) {
com.hazelcast.config.Config hazelcastConfig = new com.hazelcast.config.Config();
final String clusterName = env.getProperty("core.hazelcast.clusterName");
hazelcastConfig.getGroupConfig().setName(clusterName);
hazelcastConfig.getGroupConfig().setPassword(env.getProperty("core.hazelcast.clusterPassword"));
JoinConfig joinConfig = hazelcastConfig.getNetworkConfig().getJoin();
joinConfig.getMulticastConfig().setEnabled(false);
joinConfig.getTcpIpConfig().setEnabled(true);
final String members = env.getProperty("core.hazelcast.members");
//Here it comes!!!
if (!StringUtils.isEmpty(members)) {
joinConfig.getTcpIpConfig().addMember(members);
}
hazelcastConfig.setProperty(GroupProperty.LOGGING_TYPE.getName(), "slf4j");
return new HazelcastLifecycleBean(Hazelcast.newHazelcastInstance(hazelcastConfig));
}
在配置文件中是
core.hazelcast.members=10.15.162.50,10.15.162.51
这被传递给joinConfig.getTcpIpConfig().addMember
有什么想法吗?
【问题讨论】:
-
你能发布一个更完整的例子吗?您的类定义为
static HazelcastInstance createServer,但返回的对象是new HazelcastLifecycleBean,这是不兼容的。此外,错误消息中的建议是其中一台机器是 type=JAVA_CLIENT 而不是服务器 -
其他进程是客户端吗?发布日志会有所帮助
-
嗨@NeilStevenson,好问题。现在,我对最后一条日志消息感到困惑。为什么 ClientReAuthOperation 会抱怨自己不是成员?在这两个地址 x.x.x.50 和 x.x.x.51 是我的成员,但也是客户。但是5701端口是服务器端口。
-
没有客户端可以试试吗?
标签: java hazelcast distributed-caching