我正在尝试使用负载均衡器配置Wildfly服务器以用于学习目的。这就是我得到的:
我发现wildfly文档相当差,但在看了Stuart Douglas's explanation负载均衡器如何工作之后,我现在有了第一个运行服务器集群的VM。负载均衡有效,但一切都在同一个VM上(第一个)。我真正喜欢的是负载均衡器作为两个后端服务器的代理。
我已经尝试了Wildfly documentation中描述的方法,但没有设法让它发挥作用。
在两个第二个虚拟机之间进行第一次虚拟机负载均衡需要做些什么?更进一步,让第一个VM充当VM-2和VM-3之间的负载均衡器是多么困难,其中VM-2和VM-3是集群(然后它们将拥有自己的负载均衡器) ?)?
非常感谢任何指示。
答案 0 :(得分:2)
在WildFly版本10.1中,有一个负载均衡器配置文件作为WildFly安装的一部分。只是使用它。我在这里提供了示例步骤(基于我的演示scripts for MS Azure)。
使用standalone-load-balancer.xml
配置文件作为负载均衡器。 WildFly 10.1具有示例中的配置文件。 WildFly 11将它作为配置目录中的标准配置文件。
WILDFLY_HOME=/path/to/wildfly
# MY_IP=$(ip route get 8.8.8.8 | awk '{print $NF; exit}')
MY_IP=152.238.224.58
# Skip following command in WildFly 11
cp $WILDFLY_HOME/docs/examples/configs/standalone-load-balancer.xml \
$WILDFLY_HOME/standalone/configuration/
# run the load balancer profile
$WILDFLY_HOME/bin/standalone.sh -b $MY_IP -bprivate $MY_IP -c standalone-load-balancer.xml
此脚本用于工作节点和负载均衡器公共网络之间的通信。如果您想使用专用网络(强烈推荐),请为private
接口(-bprivate
)设置平衡器的正确IP地址。
使用包含modcluster组件的HA(或Full HA)配置文件运行服务器。如果UDP多播在您的环境中正常工作,则工作人员应该开箱即用而不做任何更改。如果不是这种情况,则静态配置负载均衡器的IP地址。
WILDFLY_HOME=/path/to/wildfly
MY_IP=$(ip route get 8.8.8.8 | awk '{print $NF; exit}')
# Configure static load balancer IP address.
# This is necessary when UDP multicast doesn't work in your environment.
LOAD_BALANCER_IP=152.238.224.58
$WILDFLY_HOME/bin/jboss-cli.sh <<EOT
embed-server -c=standalone-ha.xml
/subsystem=modcluster/mod-cluster-config=configuration:write-attribute(name=advertise,value=false)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=proxy1:add(host=$LOAD_BALANCER_IP,port=8090)
/subsystem=modcluster/mod-cluster-config=configuration:list-add(name=proxies,value=proxy1)
EOT
# start the woker node with HA profile
$WILDFLY_HOME/bin/standalone.sh -c standalone-ha.xml -b $MY_IP -bprivate $MY_IP
同样,为了确保安全,您应该将MY_IP
配置为来自专用网络的地址。