具有多个集群的Java Hazelcast问题

具有多个集群的Java Hazelcast问题,java,cluster-computing,hazelcast,Java,Cluster Computing,Hazelcast,我正在运行一个小型系统,它依靠Hazelcast以多播模式(下载中提供的标准配置)进行集群、分布式计算和消息传递。我有许多服务器模块作为“核心”Hazelcast实例运行,还有一个Java Swing应用程序作为Hazelcast“本机客户端”实现。这一切都很好,我现在想在生产中调试该系统,因此需要运行两个独立的集群(dev+prod),这就是我遇到问题的地方 根据我的建议,您只需为两个集群使用单独的组名+密码,我得到的印象是,这两个集群应该自动进行排序!?这似乎适用于服务器模块,但当我尝试将“

我正在运行一个小型系统,它依靠Hazelcast以多播模式(下载中提供的标准配置)进行集群、分布式计算和消息传递。我有许多服务器模块作为“核心”Hazelcast实例运行,还有一个Java Swing应用程序作为Hazelcast“本机客户端”实现。这一切都很好,我现在想在生产中调试该系统,因此需要运行两个独立的集群(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
但是,客户机从未作为prod的成员出现。相反,我发现客户机已成为开发环境的成员,即使身份验证是针对prod进行的


这两个团簇的非自愿混合显然是我和我的一个大问题。有人知道我是否做错了什么,或者我是否可以更改配置来解决问题吗?

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

因此,我怀疑您的客户机确实连接到了prod,但不知何故,在您的代码中有一些类似于Hazelcat.getMap()的东西,这导致在该JVM中启动一个成员,并且由于该成员将使用的默认配置与开发人员相同,因此该新成员将加入到您的开发人员集群中

事实上,您有一个连接到prod的客户端和另一个连接到dev集群的成员

试着把一些东西通过客户端,看看这些条目出现在哪个集群中


我说得通吗?

当然。有道理。我现在时间有点紧,但我会在下周初测试你的建议,然后再回来。非常感谢你的快速回答,你是对的。我的客户机中有一些使用默认配置“dev”启动成员的代码。我最终把我的客户换成了超级客户,因为这对我来说似乎更容易解决。我的核心模块(成员)需要了解连接的客户机,并且本地客户机对成员“似乎不太可见”。无论哪种方式,超级客户端实现都很好地满足了我的目的。非常感谢你的帮助。