Wildfly 10将Load Balancer添加到现有域

时间:2017-07-20 09:20:43

标签: jboss load-balancing wildfly-10 undertow mod-cluster

在实施此方案之前,我没有使用Wildfly或JBOSS的经验。 我在域模式下运行Wildfly 10。 每个运行1个Wildfly服务器的2个主机连接到单个数据源。 Server1 -Master-域控制器 Server2 - 奴隶 数据源在“默认”配置文件下配置 部署在“完整”配置文件下。

我现在需要在等式中添加负载平衡,但我只想使用Wildfly。我已阅读以下文章,将静态负载balncer设置为反向代理https://docs.jboss.org/author/display/WFLY10/Using+Wildfly+as+a+Load+Balancer

我有一个第三台服务器,我想配置为负载均衡器。 我是否将其配置为域中的“SLAVE”,但是将其添加到域控制器上的LOAD-BALANCER配置文件中?当我这样做时,它找不到并连接到Master(Server1)!

请有人告诉我我需要在此服务器上进行的基本设置,以便我能够按照上述文章中的步骤将其配置为反向代理/静态负载均衡器吗?

非常感谢

1 个答案:

答案 0 :(得分:2)

如果您希望将wildfly用作具有modcluster /静态负载平衡配置的负载均衡器,那么您不需要在群集/域中包含服务器(将充当负载均衡器)。您可以分离调用负载均衡器服务器。 Wildfly10发行版已经有一个示例文件 - standalone-load-balancer.xml(内部 - \ docs \ examples \ configs),可以直接使用。

此文件具有使用wildfly 10.1作为负载均衡器所需的最低配置。

服务器启动后,它会自动发现参与群集的工作节点(提供的多播地址和端口正在工作并可在网络中访问)。

另请注意,所有工作节点应具有不同的节点名称,否则如果某些节点位于同一台计算机上,并且如果它们未使用不同的节点名称调用,则它们可能会被负载均衡器服务器拒绝。

以下是使用特定节点名称---

调用wildfly服务器的命令
standalone.bat -Djboss.node.name=<specify the node name here>

基本设置如下 -

[1]使用配置调用两个单独的节点(wildfly实例) - standalone-ha.xml / standalone-full-ha.xml以及一些web-app(例如cluster-demo.war)。请注意,Web应用程序的部署描述符必须包含标记,否则在调用两个工作节点后不会设置集群。

[2]第一步成功后,用户可以看到消息 - 在工作节点的控制台日志中收到新的集群视图。

[3] LOAD BALANCER CONFIGURATION -

[3.1] DYNAMIC LOAD BALANCER(使用modcluser配置)--------

使用configuration-standalone-load-balancer.xml

调用wildfly的第三个实例

如果负载均衡器检测到所有工作节点,则用户将在负载均衡器服务器的控制台日志中看到日志消息 - 注册节点 - nodeName。

[3.2]静态负载平衡器配置-----

CLI ---

/子系统=暗流/配置=处理机/反向代理= MY-handler1:添加()

/ socket-binding-group = standard-sockets / remote-destination-outbound-socket-binding = remote-host111 /:add(host = localhost,port = 9080) / socket-binding-group = standard-sockets / remote-destination-outbound-socket-binding = remote-host222 /:add(host = localhost,port = 10080)

/ subsystem = undertow / configuration = handler / reverse-proxy = my-handler1 / host = host11:add(outbound-socket-binding = remote-host111,scheme = http,instance-id = cluster-demoroute,path = /集群演示) / subsystem = undertow / configuration = handler / reverse-proxy = my-handler1 / host = host22:add(outbound-socket-binding = remote-host222,scheme = http,instance-id = cluster-demoroute,path = / cluster-演示)

/子系统=暗流/服务器=默认服务器/主机=默认 - 主机/位置= /群集演示:添加(处理程序= MY-handler1)

配置替换-------------

[A]在subsystem-undertow / handlers标签内添加以下反向代理标签 -

<reverse-proxy name="my-handler1">
                    <host name="host11" outbound-socket-binding="remote-host111" path="/cluster-demo" instance-id="cluster-demoroute"/>
                    <host name="host22" outbound-socket-binding="remote-host222" path="/cluster-demo" instance-id="cluster-demoroute"/>
                </reverse-proxy>

[B]在子系统中添加位置标记 - undertow / server = default-server / default-host

<location name="/cluster-demo" handler="my-handler1"/>

[C]在socket-binding-group标签内添加以下内容

<outbound-socket-binding name="remote-host111">
            <remote-destination host="localhost" port="9080"/>
        </outbound-socket-binding>
        <outbound-socket-binding name="remote-host222">
            <remote-destination host="localhost" port="10080"/>
        </outbound-socket-binding>