2012-11-14 67 views
0

我想创建一个由3个Jboss AS7节点组成的群集,并具有以下场景。Jboss 7.1.1三个节点的群集

我的三台机器是 1 - Windows Server 2003的计算机(IP:193.16.1.146) 2 - 微软Windows 7的机器(IP:193.16.1.67) 3- Ubuntu Linux操作系统的计算机(IP:193.16.1.68)

我正在使用standalon-full-ha.xml配置文件来运行Jboss。

配置文件是对三台机器同(除了IPS),这里是我已经在三个文件

1-的jgroup子系统

<subsystem xmlns="urn:jboss:domain:jgroups:1.1" ***default-stack="tcp"***> 
     <stack name="udp"> 
      ......... 
     </stack> 
     <stack name="tcp"> 
      <transport type="TCP" socket-binding="jgroups-tcp" diagnostics-socket-binding="jgroups-diagnostics"/> 
    <protocol type="TCPPING"> 
       <property name="initial_hosts">193.16.1.146[7600],193.16.1.68[7600],193.16.1.67[7600]</property> 
       <property name="num_initial_members">3</property> 
       <property name="port_range">0</property> 
       <property name="timeout">2000</property> 
      </protocol> 
      ....... 
     </stack> 
    </subsystem> 

2-接口所作的更改

<interfaces> 
    <interface name="management"> 
     <inet-address value="${jboss.bind.address.management:193.16.1.68}"/> 
    </interface> 
    <interface name="public"> 
     <inet-address value="${jboss.bind.address:193.16.1.68}"/> 
    </interface> 
    <interface name="unsecure"> 
     <inet-address value="${jboss.bind.address.unsecure:193.16.1.68}"/> 
    </interface> 
</interfaces> 

当然IP从机器变成了机器。

现在,当我在两台Windows机器之间形成一个集群时,每件事情都能正常工作。当我启动两个节点时,我可以在控制台日志(在两台机器中)看到到另一个节点的连接。

当我在Ubuntu机器和任何两台Windows机器之间形成一个集群时,ubuntu机器不连接到另一个节点(它的控制台日志中没有出现任何内容),并且Windows机器连续抛出失败以创建netty连接:java.net.SocketTimeOutException。

我已经使用下面的命令

sudo ufw disable 

禁用在Ubuntu机防火墙,然后重新启动机器。

会导致群集无法在Ubuntu机器和其他Windows机器之间工作的问题是什么?

+0

请仔细标注标签。您将其标记为[tag:cluster-analysis],一种数据挖掘技术。你可能的意思是[标签:负载平衡]。 –

回答

0

JBoss AS7使用JGroups进行基础组通信以发现集群成员和集群。

如果您正在使用配置文件full-ha运行服务器,则邮件系统也会形成一个群集。 HornetQ是JBoss AS7中的默认消息提供者。但是HornetQ不使用Jgroups来进行服务器发现。它是完全独立的。 HornetQ使用Netty和默认配置UDP多播来广播服务器连接设置。

因为您正在使用JGroups TCPPing,我假定服务器可能不在同一个UDP多播组中。

+0

'HornetQ使用Netty并且使用默认配置UDP多播广播服务器连接设置我在哪里可以在Jboss Docs或HornetQ Docs中找到这些信息?另外,'我假定服务器可能不在同一个UDP多播组中'如果是这种情况,我怎么能将这两个服务器设置在同一个UDP多播组中? –

+0

我检查了三台机器的配置,并将三个Jboss实例配置为使用相同的广播组,相同的主机和相同的端口。(实际上这是默认配置,我没有改变任何东西,而不是上述问题中提到的部分) –

+0

这里您可以找到服务器发现部分的文档:http://docs.jboss.org/hornetq/2.2。 14.Final/user-manual/en/html/clusters.html#clusters.server-discovery – Heinz