我有很多wildfly-8.2节点,IP地址为10.4.0.X.我需要将它们分成两个不同的集群。不幸的是,我从未包含在群集中的节点收到消息。每个群集都接收来自所有节点的消息,因为它们都在10.4.0以下。这是我在Apache中的mod_cluster配置:
# MOD_CLUSTER_ADDS
<IfModule manager_module>
Listen 10.4.0.1:10001
ManagerBalancerName testbalancer
<VirtualHost 10.4.0.1:10001>
<Location />
Order deny,allow
Deny from all
Allow from 10.4.0.
</Location>
KeepAliveTimeout 300
MaxKeepAliveRequests 0
#ServerAdvertise on http://10.4.0.1:10001
AdvertiseFrequency 5
#AdvertiseSecurityKey secret
#AdvertiseGroup 224.0.1.105:23364
EnableMCPMReceive
<Location /mod_cluster_manager>
SetHandler mod_cluster-manager
Order deny,allow
Deny from all
Allow from 10.4.0
</Location>
答案 0 :(得分:4)
我认为这可能是在域模式下使用widlfly的好方案,这样您就可以配置多个服务器组(子集群)并使用域控制器集中管理它们。这里有详细的教程: http://blog.akquinet.de/2012/07/19/scalable-ha-clustering-with-jboss-as-7-eap-6/
本教程将多个服务器组拆分为mod_cluster上的多个负载均衡器组。
要将单个节点配置为mod_cluster的不同负载均衡器组(我自己没试过!),您可以在mod-cluster-config中使用lbgroup参数:
<subsystem xmlns="urn:jboss:domain:modcluster:1.1">
<mod-cluster-config advertise-socket="modcluster"
balancer="myBalancer" load-balancing-group="myLBGroup"
connector="ajp">
<dynamic-load-provider>
<load-metric type="busyness"/>
</dynamic-load-provider>
</mod-cluster-config>
</subsystem>
参考:https://developer.jboss.org/thread/203907
将wildfly实例实际分离为单独的聚类是另一个故事。曾经有一个属性&#34; jboss.partition.name&#34;但这已被替换为为子网内的群集分区定义唯一的多播地址/端口组合。
https://developer.jboss.org/thread/177877
因此假设您使用udp作为jgroups堆栈,您可以使用&#34; -u&#34;更改多播地址。命令行参数:
配置mod_cluster的另一种方法可能是禁用广告(nodes和mod_cluster)并在standalone.xml中使用静态配置:
<mod-cluster-config proxy-list="10.0.1.2:6667"/>
这样,节点将不再做广告,并且对不同mod_cluster apache代理的分配将是静态的。