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

将Java客户端连接到Hazelcast Kubernetes失败

唐茂实
2023-03-14

我正在运行一个kubernetes集群,在其中按照kubernetes hazelcast github页面上的说明部署一个“云原生hazelcast”。一旦运行了许多hazelcast实例,我就会尝试将java客户端连接到其中一个实例,但由于某种原因,连接失败。

使用kubernetes外部endpoint,我可以从kubernetes集群外部连接到hazelcast。当我使用curl-kubernetes-master:32469/hazelcast/REST/cluster进行REST调用时,我从hazelcast得到了正确的响应,其中包含集群信息。所以我知道我的endpoint是有效的。

hazelcast kubernetes部署使用hazelcast kubernetes引导程序,该引导程序允许通过使用复制控制器设置环境变量进行一些配置,但我使用的是所有默认值。所以我的组和密码是“someGroup”和“someSecret”。

我Java客户端代码非常简单:

ClientConfig clientConfig = new ClientConfig();
clientConfig.getNetworkConfig().setConnectionAttemptLimit(0);
clientConfig.getNetworkConfig().setConnectionTimeout(10000);
clientConfig.getNetworkConfig().setConnectionAttemptPeriod(2000);
clientConfig.getNetworkConfig().addAddress("kubernetes-master:32469");
clientConfig.getGroupConfig().setName("someGroup");
clientConfig.getGroupConfig().setPassword("someSecret")
HazelcastInstance client = HazelcastClient.newHazelcastClient(clientConfig);

启动客户端时,这是hazelcast容器的日志输出

2016-07-05 12:54:38.143  INFO 5 --- [thread-Acceptor] com.hazelcast.nio.tcp.SocketAcceptor     : [172.16.15.4]:5701 [someGroup] [3.5.2] Accepting socket connection from /172.16.29.0:54333
2016-07-05 12:54:38.143  INFO 5 --- [        cached4] c.h.nio.tcp.TcpIpConnectionManager       : [172.16.15.4]:5701 [someGroup] [3.5.2] Established socket connection between /172.16.15.4:5701
2016-07-05 12:54:38.157  INFO 5 --- [.IO.thread-in-1] c.h.nio.tcp.SocketClientMessageReader    : [172.16.15.4]:5701 [someGroup] [3.5.2] Unknown client type: <

和客户端的控制台输出

jul 05, 2016 2:54:37 PM com.hazelcast.core.LifecycleService
INFO: HazelcastClient[hz.client_0_someGroup][3.6.2] is STARTING
jul 05, 2016 2:54:38 PM com.hazelcast.core.LifecycleService
INFO: HazelcastClient[hz.client_0_someGroup][3.6.2] is STARTED
jul 05, 2016 2:54:48 PM com.hazelcast.client.spi.impl.ClusterListenerSupport
WARNING: Unable to get alive cluster connection, try in 0 ms later, attempt 1 of 2147483647.
jul 05, 2016 2:54:58 PM com.hazelcast.client.spi.impl.ClusterListenerSupport
WARNING: Unable to get alive cluster connection, try in 0 ms later, attempt 2 of 2147483647.
jul 05, 2016 2:55:08 PM com.hazelcast.client.spi.impl.ClusterListenerSupport
etc...

客户端只是不断尝试连接,但从未建立过连接。

那么,为什么我的客户端不能连接到hazelcast实例?这是我缺少的配置部分吗?

共有2个答案

容俊豪
2023-03-14

查看控制台日志,Node和Client之间有不同的Hazelcast版本?您可以将两者都更新为3.6.4,即最新版本,或者只是将集群更改为3.6.2以与客户端匹配。3.6. x也有许多配置更改和许多错误修复。

司徒钱青
2023-03-14

不确定kubernetes的官方支持,但是Hazelcast有一个kubernetes发现插件(基于新的discovery spi),可在客户端和节点上运行:https://github.com/noctarius/hazelcast-kubernetes-discovery

 类似资料:
  • 我们正在运行“helloworld”示例https://grpc.io/docs/quickstart/cpp.html#update-a-grpc-service,我们收到以下错误: 14:连接失败 迎宾员收到:RPC失败。 服务器和客户端正在监听:。服务器正在运行。首先,我们在服务器上只收到一个数据包,客户端崩溃,我用tcpdump检查了它。我们在不同的主机和同一台主机上进行了检查,但这两种情

  • 我正在使用Netty 4.0构建一个客户端/服务器。服务器正在正确监听localhost:8083并且我可以远程登录它,它会正确触发服务器断点。但是当我尝试使用这段代码连接时: 它在sync()处抛出异常:java.nio.channels.ClosedChannelException。如前所述,当我telnet 127.0.0.1 8083(或用Socket连接代码)时,它确实有效。知道吗?非常

  • 连接失败客户端一般会有两种报错,connection refuse 和 connection timeout connection refuse(连接拒绝) 一般是以下原因: 1、客户端连接的端口错了 2、客户端连接的域名或者ip错了 3、如果客户端使用了域名连接,域名可能指向了错误的服务器ip 4、服务端没有启动或者端口没有被监听 5、使用了网络代理软件 6、服务端监听ip与访问地址不在一个地址

  • 我正在Druid服务器上处理数据的获取和查询。但是,当我查询时,我只使用以下命令行: 有谁能告诉我如何利用Java客户端和ApacheHttpClient将该查询发送到Druid服务器以获得响应。非常感谢。

  • 我编写了一个简单的HBase客户端程序来在我的HBase集群(1个主服务器和3个区域服务器)中执行CRUD操作。Zookeeper实例仅在主服务器中运行,仲裁包括所有4台服务器。集群运行良好,可以使用YCSB客户端执行读/写操作(意味着服务器/Zookeeper端没有任何错误)。 现在,在eclipse类路径中,我添加了所有HBase库和hbase-0.94.7.jar(包含hbase-defau

  • 下面是我的服务器代码: 下面是我的客户端活动代码: 以下是客户端活动的xml布局文件: 因此,我开始认为这不是连接端口的问题,而是应用程序的android客户端的问题。但我想不出有什么问题。 顺便说一下,当我试图发送消息时,运行客户端的手机和运行服务器的笔记本电脑都连接到了同一个网络。