JBoss群集:如何查找/列出构成群集的所有成员

时间:2013-11-12 11:20:13

标签: java jboss jboss5.x

我有几个JBoss 5.1实例在集群模式下运行。

我需要找到一种方法,如何以编程方式获取构成群集的所有节点/成员(主机:端口)的列表。该代码应该在EJB容器内运行。

感谢任何提示!

2 个答案:

答案 0 :(得分:1)

您可以通过查询JMX MBean服务器以编程方式获取此信息。您需要查询MBean jboss:partition=DefaultPartition,service=HAPartition并查找属性CurrentView的值。 CurrentView将提供群集中的当前节点及其主机/ IP地址。您还可以通过将此数据与来自同一MBean的jmx-console的数据进行匹配来验证此数据。

您可以将此逻辑放在EJB中。您需要注意的一个问题是,您不希望在部署和启动集群服务之前部署EJB。否则,您的EJB可能会抛出异常(例如InstanceNotFoundException)。因此,为您的EJB部署包的depends中的集群MBean(jboss:service=DefaultPartition)添加jboss-web.xml子句。

答案 1 :(得分:0)

您可以使用各种框架找到集群成员,包括JGroups,Infinispan,mod_cluster和JMX。虽然这个tutorial是为AS7编写的,但我相信大部分内容对AS5用户也很有用。 此致