Wildfly负载均衡跨多台机器

时间:2017-09-12 18:07:40

标签: jboss wildfly load-balancing

我正在尝试使用负载均衡器配置Wildfly服务器以用于学习目的。这就是我得到的:

  • 三个虚拟机,只能通过其IP访问。
    • 一个是152.238.224.58 - 我的负载均衡器
    • 另一个是152.238.224.59 - 我的第一个后端服务器
    • 最后一个是152.238.224.60 - 我的第二个后端服务器

我发现wildfly文档相当差,但在看了Stuart Douglas's explanation负载均衡器如何工作之后,我现在有了第一个运行服务器集群的VM。负载均衡有效,但一切都在同一个VM上(第一个)。我真正喜欢的是负载均衡器作为两个后端服务器的代理。

我已经尝试了Wildfly documentation中描述的方法,但没有设法让它发挥作用。

在两个第二个虚拟机之间进行第一次虚拟机负载均衡需要做些什么?更进一步,让第一个VM充当VM-2和VM-3之间的负载均衡器是多么困难,其中VM-2和VM-3是集群(然后它们将拥有自己的负载均衡器) ?)?

非常感谢任何指示。

1 个答案:

答案 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配置为来自专用网络的地址。