将 Java 客户端连接到 Hazelcast-Kubernetes 失败
Connecting Java client to Hazelcast-Kubernetes fails
我是 运行 一个 kubernetes 集群,我正在按照 kubernetes-hazelcast github page 上的说明在其中部署“云原生 hazelcast”。一旦我有许多 hazelcast 实例 运行,我尝试将 java 客户端连接到其中一个实例,但由于某种原因连接失败。
一些背景
使用 kubernetes 外部端点,我可以从 kubernetes 集群外部连接到 hazelcast。当我使用 curl kubernetes-master:32469/hazelcast/rest/cluster
进行 REST 调用时,我从 hazelcast 获得了正确的响应及其集群信息。所以我知道我的端点有效。
hazelcast-kubernetes 部署使用 hazelcast-kubernetes-bootstrapper 允许通过复制控制器设置环境变量进行一些配置,但我使用的是所有默认值。所以我的组和密码是“someGroup”和“someSecret”。
java 客户
我的 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 实例?我缺少某些配置部分吗?
查看控制台日志,节点和客户端之间的 Hazelcast 版本不同?您能否将两者都更新为 3.6.4,即最新版本,或者只是将集群更改为 3.6.2 以与客户端匹配。 3.6.x 有许多配置更改和许多错误修复。
不确定官方的 kubernetes 支持,但是 Hazelcast 有一个 kubernetes 发现插件(基于新的发现 spi),可以在客户端和节点上运行:https://github.com/noctarius/hazelcast-kubernetes-discovery
我是 运行 一个 kubernetes 集群,我正在按照 kubernetes-hazelcast github page 上的说明在其中部署“云原生 hazelcast”。一旦我有许多 hazelcast 实例 运行,我尝试将 java 客户端连接到其中一个实例,但由于某种原因连接失败。
一些背景
使用 kubernetes 外部端点,我可以从 kubernetes 集群外部连接到 hazelcast。当我使用 curl kubernetes-master:32469/hazelcast/rest/cluster
进行 REST 调用时,我从 hazelcast 获得了正确的响应及其集群信息。所以我知道我的端点有效。
hazelcast-kubernetes 部署使用 hazelcast-kubernetes-bootstrapper 允许通过复制控制器设置环境变量进行一些配置,但我使用的是所有默认值。所以我的组和密码是“someGroup”和“someSecret”。
java 客户
我的 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 实例?我缺少某些配置部分吗?
查看控制台日志,节点和客户端之间的 Hazelcast 版本不同?您能否将两者都更新为 3.6.4,即最新版本,或者只是将集群更改为 3.6.2 以与客户端匹配。 3.6.x 有许多配置更改和许多错误修复。
不确定官方的 kubernetes 支持,但是 Hazelcast 有一个 kubernetes 发现插件(基于新的发现 spi),可以在客户端和节点上运行:https://github.com/noctarius/hazelcast-kubernetes-discovery