Wildfly在同一网络中的custers中有许多耦合节点

时间:2015-11-02 10:56:59

标签: jboss wildfly infinispan

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

我没有在手册或网上找到禁用/避免同一网络上两个群集之间通信的方法;我做了很多尝试,但只取得了一次成功:infinispan似乎在其集群中被隔离。现在我有hornetq在群集A和群集B之间共享其数据。 有谁知道如何将群集A与群集B隔离? 非常感谢你。

1 个答案:

答案 0 :(得分:3)

我建议您为不同的群集使用单独的多播组。您可以通过在standalone.xml / domain.xml文件中更改名称jgroups-mping,jgroups-udp,messaging-group,modcluster的套接字绑定元素的multicast-address属性来完成此操作。

<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"/>

消息传递组组用于消息传递子系统(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个用于开发),最后一个八位字节可以表示特定的多播组。