我有一个好奇心,我一直在寻找它,但没有任何结果。GlassFish文档中写道:
如果应用程序客户端所在的GlassFish Server实例已部署参与集群,GlassFish服务器将查找所有集群中当前活动的IIOP端点自动。然而客户端应至少为指定两个端点以防其中一个端点出现故障。
但我在问自己这个列表是如何创建的。
我已经对一个在JVM中执行的独立客户端进行了一些测试,并对部署在GlassFish集群中的应用程序进行了一些RMI调用。我可以从日志中看到,IIOP端点列表是自动完成的,它被设置为com.sun.appserv.IIOP.endpoints系统属性,但如果我在客户端执行期间停止一个服务器实例或启动另一个实例该列表仍然是JVM启动时创建的列表。
GlassFish集群由GMS(组管理服务(管理,GMS通常使用UDP多播,但在不可用的情况下可以使用TCP。
请参阅HA管理指南(PDF(中的第4节"管理GlassFish服务器集群">
组管理服务(GMS(允许实例通过检测集群成员身份的变化,并向实例通知这些变化。到确保GMS可以检测到集群成员身份的更改,即集群的GMS设置必须正确配置。