当前位置: 首页 > 知识库问答 >
问题:

Hazelcast:连接到远程群集

蓬兴国
2023-03-14

我们有一个Hazelcast节点集群,所有这些节点都运行在一个远程系统(具有许多节点的单个物理系统)上。我们希望从一个外部客户机连接到这个集群--一个Java应用程序,它使用如下代码连接到HazelCast:

        ClientConfig clientConfig = new ClientConfig();
        clientConfig.addAddress(config.getHost() + ":" + config.getPort());

        client = HazelcastClient.newHazelcastClient(clientConfig);

其中,主机是远程的IP,端口是5701。

这仍然连接到本地主机(127.0.0.1)。我错过了什么?

编辑:

如果java客户端是本地系统上运行的唯一hazelcast应用程序,则它无法连接并抛出异常:java.lang.IllegalStateException:无法获取初始分区!

14:58:26.748[main]INFO com.hazelcast.core.lifecycleservice-hazelcastclient[hz.client_0_dev][3.2.1]正在启动

14:58:27.029[main]INFO com.hazelcast.core.lifecycleservice-hazelcastclient[hz.client_0_dev][3.2.1]已启动

14:58:27.061[hz.client_0_dev.cluster-listener]INFO com.hazelcast.core.lifecycleservice-hazelcastclient[hz.client_0_dev][3.2.1]是CLIENT_CONNECTED

14:58:27.061[hz.client_0_dev.cluster-listener]信息C.h.client.spi.ClientClusterService-

成员[5]{成员[127.0.0.1]:5701成员[127.0.0.1]:5702成员[127.0.0.1]:5703成员[127.0.0.1]:5704成员[127.0.0.1]:5705}

14:58:47.278[main]错误c.h.c.spi.ClientPartitionService-提取群集分区表时出错!

com.hazelcast.spi.exception.retryableioexception:java.util.concurrent.exception:com.hazelcast.core.hazelcastexception:java.net.connectexception:连接被拒绝:没有进一步信息...原因:java.util.concurrent.exception:com.hazelcast.core.hazelcastexception:java.net.connectexception:java.util.concurrent.exception:java.net.connectexception:java.net.connectexception:没有进一步信息

在java.util.concurrent.FutureTask.Report(未知源)~[NA:1.8.0_31]

在java.util.concurrent.FutureTask.Get(未知源)~[NA:1.8.0_31]

在com.hazelcast.client.connection.nio.clientConnectionManagerImpl.getorConnect(ClientConnectionManagerImpl.java:282)~[brbase-service-manager-1.0.0-jar-with-dependencies.jar:na]

...省略14个常用帧

在com.hazelcast.util.exceptionutil.rethrow(exceptionutil.java:45)~[brbase-service-manager-1.0.0-jar-with-dependencies.jar:na]...

共有1个答案

楚翰
2023-03-14

若要连接到远程群集,请确保群集使用外部IP,而不是127.0.0.1。在我们的示例中,我们有一个具有多个节点的单个物理系统,启用了TCP-IP模式。hazelcast.xml具有以下配置:

<tcp-ip enabled="true">
    <!-- This should be external IP -->
    <interface>172.x.x.x</interface>
</tcp-ip>
 类似资料:
  • 我已经创建了一个redis集群,它自己是工作的,但我不能连接我的客户到它。 我正在使用redisson连接到它,下面的代码 其中,redisURL是csv,格式为:,但包含集群中的所有6个节点。

  • 我使用discovery api和Zookeeper在docker容器中运行了一个Hazelcast集群。这一切都运行良好,集群启动并按预期工作。我的问题是将客户端从另一台服务器连接到群集。 集群将127.0.0.1和172.17.0.1作为集群地址返回给zookeeper,这意味着客户端在同一台机器上运行良好,但即使172.17.0.1映射在客户端的主机文件中,也不会从远程机器连接到Hz集群的服

  • 我目前正在创建一个API,它使用具有3个节点的Cassandra集群来存储数据。我使用PHP 5.6.17、Cassandra 2.2.3和Datastax PHP Driver 1.1.0在本地机器上开发它,一切都很顺利。 但是,我们决定迁移到远程 Cassandra 集群(带有本机协议 4 的 3.4),我无法通过 PHP 访问它,因为我收到以下错误:发生错误:16777226 - 没有可用于

  • 问题内容: 我想在一台机器上运行一个IPython实例,并通过另一个进程(运行一些python命令)(通过LAN)连接到它。我了解zmq是可能的:http : //ipython.org/ipython- doc/dev/development/ipythonzmq.html 。 但是,我找不到有关如何执行操作以及是否可行的文档。 任何帮助,将不胜感激! 编辑 我希望能够连接到IPython内核实

  • 在我们的项目中实现MBean(以独立模式部署在JBoss AS 7.1.1上)后,我使用JConsole执行了一些测试并创建了一个“本地进程”连接(使用JBoss PID的连接),这工作正常。可以看到、到达并返回预期值的MBean。但是我无法使用“远程进程”进行连接。 这是JMX子系统配置: 这是套接字配置: 我在那里找到了几种URL使用方法,但我用不同的建议端口(9990959510904447