第 3 章 使用 JBoss HTTP 连接器(mod_proxy_cluster)的负载平衡
mod_proxy_cluster
连接器是一个减少配置、智能负载平衡解决方案,允许 Apache HTTP 服务器连接后端 JBoss Web 服务器或 JBoss EAP 主机。mod_proxy_cluster
模块基于最初开发 JBoss mod_cluster
社区项目的技术。
3.1. mod_proxy_cluster
关键功能和组件
mod_proxy_cluster
模块对 JBoss EAP 和 JBoss Web Server worker 节点的 HTTP 请求进行负载均衡。mod_proxy_cluster
模块使用 Apache HTTP 服务器作为代理服务器。
mod_proxy_cluster
的主要功能
mod_proxy_cluster
连接器比 mod_jk
连接器有几个优点:
-
启用
mod_proxy_cluster
模块后,mod_proxy_cluster
管理协议(MCMP)是 Tomcat 服务器和 Apache HTTP 服务器之间的额外连接。Tomcat 服务器使用 MCMP 通过使用自定义的 HTTP 方法将服务器端负载图和生命周期事件传输回 Apache HTTP 服务器。 -
使用
mod_proxy_cluster
的 Apache HTTP 服务器的动态配置允许带有mod_proxy_cluster
侦听器的 Tomcat 服务器加入负载平衡安排,而无需手动配置。 - Tomcat 服务器执行负载计算,而不是依赖 Apache HTTP 服务器。这使得负载平衡指标比其他连接器更准确。
-
mod_proxy_cluster
连接器提供精细的应用程序生命周期控制。每个 Tomcat 服务器将 Web 应用程序上下文生命周期事件转发到 Apache HTTP 服务器。这些生命周期事件包括通知 Apache HTTP 服务器为特定上下文启动或停止路由请求。这可防止最终用户因为资源不可用而看到 HTTP 错误。 -
您可以使用带有
mod_proxy_cluster
的 Apache JServ 协议(AJP)、Hypertext Transfer Protocol (HTTP)或 Hypertext Transfer Protocol Secure (HTTPS)传输。
mod_proxy_cluster
组件
在代理服务器中,mod_proxy_cluster
由四个 Apache 模块组成:
组件 | Description |
---|---|
| Shared Memory Manager 模块与多个 Apache HTTP 服务器进程共享实时 worker 节点信息。 |
| Cluster Manager 模块接收和确认来自 worker 节点的信息,包括节点注册、节点加载数据和节点应用程序生命周期事件。 |
| Proxy Balancer 模块处理到集群节点的请求路由。Proxy Balancer 根据集群中的应用程序位置、每个集群节点的当前状态和会话 ID (如果请求是已建立的会话的一部分)选择适当的目标节点。 |
| Proxy Advertisement 模块通过 UDP 多播消息广播代理服务器是否存在。服务器公告消息包含代理服务器侦听要从要加入负载平衡集群的 worker 节点的 IP 地址和端口号。 |