Wildfly 在同一网络中的集群中有许多节点

Wildfly many couple nodes in custers in same network

我正在尝试在同一网络上配置两个单独的 wildfly 集群,并将 infinispan 作为缓存服务器。我需要两个集群(比如集群 A 和集群 B)不相互通信:集群 A 是我们应用程序的预生产集群,集群 B 是我们的开发集群。集群 A 和 B 都有自己的 infinispan 服务器。两个集群的端口和ip不同

我没有在手册或网上找到 disable/avoid 在同一网络上的两个集群之间进行通信的方法;我做了很多尝试,但只有一个成功:infinispan 似乎在它的集群中是孤立的。现在我有 hornetq 在集群 A 和 B 之间共享它的数据。 有谁知道如何将集群 A 与集群 B 隔离? 非常感谢。

我建议您为不同的集群使用单独的多播组。您可以通过更改 standalone.xml/domain.xml 文件中名为 jgroups-mping、jgroups-udp、messaging-group、modcluster 的套接字绑定元素的多播地址属性来实现。

<socket-binding-group name="full-ha-sockets" default-interface="public">
    ...
    <socket-binding name="jgroups-mping" port="0" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45700"/> <socket-binding name="jgroups-udp" port="55200" multicast-address="${jboss.default.multicast.address:230.0.0.4}" multicast-port="45688"/>
    <socket-binding name="messaging-group" port="0" multicast-address="${jboss.messaging.group.address:231.7.7.7}" multicast-port="${jboss.messaging.group.port:9876}"/>
    <socket-binding name="modcluster" port="0" multicast-address=”224.0.1.105” multicast-port="23364"/>
    ... 
</socket-binding-group>

前两个:jgroups-mping、jgroups-udp在infinispan子系统中使用,你可以通过jboss.default.multicast.address系统改变它们属性:

-Djboss.default.multicast.address=different_group

或在服务器组定义中,如果您使用域模式:

 <property name="jboss.default.multicast.address" value="different_group"/>

messaging-group 组用于消息子系统(hornetq),可以通过以下方式配置:

-Djboss.messaging.group.address=different_group

您还应该更改 modcluster 的组。您可以通过编辑 xml 文件或引入新的 属性 并像前面的示例一样传递它来完成。

有关套接字绑定的更多信息,您可以在此处找到(它适用于 Jboss EAP 6.3,但应该相同或相似):https://access.redhat.com/documentation/en-US/JBoss_Enterprise_Application_Platform/6.3/html/Administration_and_Configuration_Guide/sect-Socket_Binding_Groups.html

您可以在此处找到有关如何选择正确的多播组的更多信息: http://www.iana.org/assignments/multicast-addresses/multicast-addresses.xhtml

我建议您使用 239.0.0.0-239.255.255.255(组织-本地范围)范围内的范围。例如,倒数第二个八位字节可以表示环境(1 个用于预生产,2 个用于开发),最后一个八位字节可以表示特定的多播组。