Java Hazelcast多个集群的问题

hgu*_*294 2 java cluster-computing hazelcast

我正在运行一个小型系统,它依赖于Hazelcast在多播模式下进行群集,分布式计算和消息传递(下载中提供标准配置).我有许多服务器模块作为"核心"Hazelcast实例运行,Java Swing应用程序作为Hazelcast"Native Client"实现.这一切都很好,我现在想要在生产中调试系统,因此需要运行两个独立的集群(dev + prod),这就是我遇到问题的地方.

根据文档,你需要的是为两个集群使用单独的组名+密码,我得到的印象是两个集群应该自动排序!?这似乎适用于服务器模块,但是当我尝试将"客户端"实例连接到prod环境时,我可以从prod中的一个服务器模块的日志中看到客户端似乎成功连接:

INFO: [prod] received auth from Connection [/192.168.0.2:55863 -> null] live=true,
client=true, type=JAVA_CLIENT, this group name:prod, auth group name:prod, 
successfully authenticated
Run Code Online (Sandbox Code Playgroud)

但是,客户永远不会成为prod的成员.相反,我发现客户端已成为开发环境的成员,即使对生产进行了身份验证!

对于我来说,两个星团的无声混合显然是一个巨大的问题.有没有人知道我做错了什么或者我是否可以做任何配置更改来解决问题?

Fua*_*kov 5

当客户端连接到群集时,它永远不会成为群集的成员.

所以我怀疑你的客户端确实已连接到prod,但是在你的代码中你有某些东西像Hazelcat.getMap()这导致在该JVM中启动一个成员,因为该成员将使用的默认配置将与dev,这个新成员将加入你的开发群集.

所以实际上你有一个客户端,它连接到prod和另一个连接到dev集群的成员.

尝试通过客户端放置一些东西,看看这些条目出现在哪个集群中?

我有意义吗?