我正在尝试使用 ModCluster 对某些服务器进行负载平衡。我们有一个 EAR,需要由不同的 DNS 进行负载平衡。
我们有这种情况。由于向后兼容性,我们需要维护相同的上下文“system1”
- 用于 urla.com.br/system1/ 的 4 个服务器
- urlb.com.br/system1/ 的 2 个服务器
在域模式下使用 Wildfly 10.1.0,它们由两个服务器组分隔:URLA和URLB。它们共享相同的配置文件 (URL-HA) 和套接字绑定 (URL-HA-SOCKET)。
我有一个带有 mod_cluster 且配置最少的 Apache。
LoadModule cluster_slotmem_module modules/mod_cluster_slotmem.so
LoadModule manager_module modules/mod_manager.so
LoadModule proxy_cluster_module modules/mod_proxy_cluster.so
LoadModule advertise_module modules/mod_advertise.so
Listen 10.90.0.13:7777
<VirtualHost 10.90.0.13:7777>
<Directory />
Require all granted
</Directory>
<Location />
Order deny,allow
Allow from all
</Location>
ManagerBalancerName mybalancer
ServerAdvertise on
EnableMCPMReceive On
<Location /mod_cluster-manager>
SetHandler mod_cluster-manager
Order deny,allow
Allow from all
</Location>
</VirtualHost>
当我访问http://10.90.0.13:7777/mod_cluster-manager时,我看到 6 个服务器注册了 context system1/
。顺便说一下,它们使用相同的 EAR 文件。
但这对我们来说不是理想的情况。访问 urla.com.br/system1/ 的用户不能使用 urlb.com.br/system1/ 的机器,反之亦然。
我能找到的唯一方法(我尚未测试...)是为每个服务器组创建一个配置文件,因此我可以在以下位置配置不同的负载平衡组:
配置文件 > URLA-HA / URLB-HA > 子系统 > ModCluster。
但在这种情况下,我们复制了配置文件中存在的所有配置(DataSources、Queues、MailSession 等)。这是痛苦的维护。
那么,就我而言,我们有哪些选择?谢谢!