1

我们有一个使用多播的 2 个节点的 Jboss 5 AS 集群,一切正常,服务器能够发现并创建集群

但问题是这些服务器会产生大量的多播流量,这会影响共享同一网络的其他服务器的网络性能。

我是 Jboss 集群的新手,有什么方法可以使用单播(点对点)而不是多播?或者配置多播,使其对网络的其余部分没有问题?你能给我推荐一些可以帮助我摆脱这个问题的文档、博客文章或类似的东西吗?

4

2 回答 2

0

在这里没有得到任何答案,但这可能对将来的某人有所帮助,我们设法通过以下方式解决它

在启动脚本中为 jboss 设置以下 TTL 属性

-Djgroups.udp.ip_ttl=1

这会将多播消息的跳数限制为 1。这不会减少集群 JBoss 之间的网络流量,但会阻止它向外传播。

如果您在同一子网中有其他服务器受到泛洪问题的影响,那么您可能必须切换到 TCP 堆栈并进行单播而不是多播

-Djboss.default.jgroups.stack=tcp

jboss deploy 中还有更多用于集群的配置文件,您应该查看。

server/production/deploy/cluster/jboss-cache-manager.sar/META-INF/jboss-cache-manager-jboss-beans.xml 

和 JGroups 配置中的其他 conf 文件。

于 2012-11-12T08:18:21.917 回答
0

如果由于某种原因多播不是一个选项,它由于网络拓扑而无法工作,我们可以使用单播。

使用单播集群而不是 UDP mcast。打开您的配置文件并查看文件 jgroups-channelfactory-stacks.xml 并找到名为“tcp”的堆栈。该堆栈仍然仅将 UDP 用于多播发现。如果低 UDP 流量没问题,您不需要更改它。如果它是或 mcast 不起作用,您将需要配置 TCPPING 协议并配置 intial_hosts 在哪里寻找集群成员。

之后,您需要告诉 JBoss Cache 使用这个堆栈,打开 jboss-cache-manager-jboss-beans.xml,其中为每个缓存定义了一个堆栈。您可以在此处将其从 udp 更改为 tcp,也可以在启动 AS 时简单地使用该属性,只需添加:

-Djboss.default.jgroups.stack=tcp

于 2013-03-05T08:41:37.003 回答