基于 Wildfly
托管域运行模式,在已配置好集群的前提下,使用 Undertow
子系统配置负载均衡。
如上图所示,已组成一个由 2 个主机(master、slave)共 4 个节点(server-one、server-two、server-one-slave 和 server-two-slave)组成的服务器集群(main-server-group),将通过 Undertow 子系统配置负载均衡。
在当前集群中,master 主机控制器
同时充当 域控制器
,来统一配置管理服务器组的配置和部署。
高可用集群必须使用 ha 或 full-ha 配置文件启动,当前服务器组使用 ha
配置。
ha 与 full-ha 区别是不包含 jsr77
、activemq
和 iiop-openjdk
子系统,根据是否需要相关子系统来选择使用 ha 还是 full-ha 配置文件,一般使用 ha 即可。
Wildfly 支持多种方式的负载均衡实现,此处仅对使用 Undertow 实现负载均衡进行说明。
从 Wildfly 10 开始支持使用 Undertow 子系统作为前端负载均衡器使用,从 Wildfly 11 开始提供了负载平衡器的配置文件,独立模式为 standalone-load-balancer.xml
,域模式在 domain.xml
的 <profile name="load-balancer">
节点中。
当前最新 Wildfly 版本为 17.0.1.Final
,最新 JBoss EAP 7.2 基于 Wildfly 14,都支持使用 Undertow 作为负载均衡器。
Undertow 代理使用异步 IO,请求中涉及的唯一线程是负责连接的 IO 线程。 与后端服务器的连接是由同一个线程完成的,这样就不需要任何线程安全结构。
如果前端和后端服务器都支持服务器推送,并且正在使用 HTTP2,则代理也支持向客户端推送响应。如果代理和后端能够推送服务器,但客户端不支持,服务器将发送一个“X-Disable-Push”头,让后端知道它不应该尝试推送该请求。
要使用 Undertow 配置静态负载均衡器,需要在 Undertow
子系统中配置代理处理程序(Proxy Handler)。 要在 Undertow 中配置代理处理程序,需要在将用作静态负载均衡器的 Wildfly 实例上执行以下操作:
添加反向代理处理程序(Reverse Proxy Handler):
/profile=load-balancer/subsystem=undertow/configuration=handler/reverse-proxy=my-handler:add
为每个远程主机定义出站套接字绑定(Outbound Socket Binding):
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-host1/:add(host=server1.example.com, port=8009)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-host2/:add(host=server2.example.com, port=8009)
将每个远程主机添加到反向代理处理程序中:
/profile=load-balancer/subsystem=undertow/configuration=handler/reverse-proxy=my-handler/host=host1:add(outbound-socket-binding=remote-host1, scheme=ajp, instance-id=myroute, path=/test)
/profile=load-balancer/subsystem=undertow/configuration=handler/reverse-proxy=my-handler/host=host2:add(outbound-socket-binding=remote-host2, scheme=ajp, instance-id=myroute, path=/test)
添加反向代理位置:
.
参考资料:
内容声明 | |
---|---|
标题: Wildfly/JBoss EAP 高可用负载均衡配置 | |
链接: https://zixizixi.cn/wildfly-jboss-eap-ha-load-balance | 来源: iTanken |
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可,转载请保留此声明。
|