【问题标题】:Hazelcast refuses MemberHazelcast 拒绝会员
【发布时间】: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


【解决方案1】:

请将端口指定为您的 tcp 成员地址的一部分。而不是 core.hazelcast.members=10.15.162.50,10.15.162.51 使用 core.hazelcast.members=10.15.162.50:5701,10.15.162.51:5701

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 2011-06-07
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    相关资源
    最近更新 更多