我想创建一个包含3个Jboss AS7节点的集群,并具有以下场景。
我的三台机器都是 1- Windows Server 2003计算机(IP:193.16.1.146) 2- Window 7机器(IP:193.16.1.67) 3- Ubuntu Linux机器(IP:193.16.1.68)
我正在使用standalon-full-ha.xml配置文件来运行Jboss。
配置文件在三台计算机上是相同的(IP除外),这是我对这三个文件所做的更改
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。
我已使用以下命令在ubuntu机器中禁用了防火墙
sudo ufw disable
然后重新启动机器。
使群集在Ubuntu机器和其他Windows机器之间无法工作的问题是什么?
答案 0 :(得分:0)
JBoss AS7使用JGroups进行基础组通信,以发现集群成员和集群。
如果您使用配置文件full-ha运行服务器,则邮件系统也会形成一个群集。 HornetQ是JBoss AS7中的默认消息提供者。但HornetQ不使用Jgroups进行服务器发现。它是完全独立的。 HornetQ使用Netty和默认配置UDP多播来广播服务器连接设置。
因为您正在使用JGroups TCPPing,我认为服务器可能不在同一个UDP组播组中。