您正在查看9.2 -版本的RapidMiner服务器文档点击这里查看最新版本
负载均衡器
有几种解决方案可以在同一应用程序的不同实例之间实现负载平衡(Nginx负载均衡器的商业版本,弹性负载均衡),但HAProxy是当前支持会话粘性的负载平衡的开源首选解决方案,因此将在本指南中介绍。它能够处理大量的流量。与nginx类似,它使用单进程,事件驱动模型,因此具有低内存指纹,能够处理大量并发请求。
本文介绍了如何设置HAProxy以在两个RapidMiner Server实例之间实现负载平衡,但本指南不涉及SSL配置。
设置
请确保遵循本文中概述的步骤。负载均衡器应该是一台专用的机器,它只负责重定向流量和负载平衡几个RapidMiner服务器实例。在这个设置中,我们假设您使用的是一台Ubuntu机器,并且SSL配置不会在负载平衡器中完成,而是在一个附加的负载平衡器中完成反向代理。
安装
haproxy
使用您的发行版的包管理器。对于Ubuntu,有一个专门的存储库来安装haproxy
包:Sudo add-apt-repository ppa:vbernat/haproxy-1.8 Sudo apt-get update Sudo apt-get install -y haproxy
安装完成后,HAProxy配置可以在下面找到
/etc/haproxy/haproxy.cfg
。默认配置分为两个部分:全球和违约。如果您想要更改运行HAProxy进程的用户或调整某些日志记录行为,可以在这些部分中执行这些操作。看到HAProxy文档了解更多详情。对于我们的基本设置,我们将跳过这些,只定义两个额外的部分:前端
和后端
。的前端部分包含HAProxy接收传入流量的连接。的后端部分包含HAProxy重定向和负载平衡流量到的连接。添加
前端
到你的haproxy.cfg
:前端localnodes bind *:80 mode HTTP default_backend rapidminerservers
在这个示例设置中,HAProxy将监听所有网络接口上的请求(
*
)在港80
但只针对HTTP协议。的前端路段作为交通输入。中定义的节点之间负载均衡所有来自该端口的观察/传入流量后端部分rapidminerservers
(交通输出).添加
后端
到你的haproxy.cfg
:backend rapidminerservers mode http balance roundbin option forwardfor http-request set-header X-Forwarded-Port %[dst_port] http-request add-header X-Forwarded-Proto https if {ssl_fc} option httpchk HEAD / http /1.1\r\nHost:localhost cookie RAPIDMINER_SRV prefix server rapidminerserver1 ip-address-of-first-instance:8080 cookie检查server rapidminerserver2 ip-address-of-second-instance:8080
http方式
:这将把HTTP请求传递给列出的服务器。此平衡循环
:使用循环负载分配策略。选择forwardfor
:添加X-Forwarded-For头,以便RapidMiner服务器实例可以获得客户端的实际IP地址。如果没有这个,RapidMiner服务器实例将把每个传入请求视为来自负载均衡器的IP地址。http-request set-header X-Forwarded-Port %[dst_port]
:手动添加X-Forwarded-Port头,以便RapidMiner服务器实例知道重定向时使用哪个端口。/ / HTTP/1.1\r\nHost:localhost
:设置HAProxy使用健康检查来测试RapidMiner服务器实例是否仍在响应。如果这些响应没有错误,服务器将从HAProxy中移除。它发送一个带有HTTP/1.1和宿主标题设置。http-request add-header X-Forwarded-Proto https if {ssl_fc}
:添加X-Forwarded-Proto如果“https”方案在“http”(via . http)上使用,则将其设置为“https”ssl_fc
).与forward -port报头类似,这可以帮助RapidMiner服务器实例确定在发送重定向时使用哪种方案。cookie RAPIDMINER_SRV前缀
:添加唯一的会话标识。在此粘性会话的帮助下,会话被启用。服务器rapidminerserver1 ip-address-of-first-instance:8080 cookie检查
:为HAProxy增加RapidMiner Server实例,实现流量均衡。设置它们的IP地址和端口(RapidMiner Server的默认端口是8080
),并添加了check指令来告诉HAProxy对服务器进行健康检查。的饼干
指令告诉HAProxy总是重复使用同一个服务器的会话(粘性)。
确保负载均衡器可以到达端口上的所有RapidMiner Server实例
8080
。(可选)添加统计网站,监控流量和负载均衡。调整你的
haproxy.cfg
并添加:listen stats *:1936 stats enable stats uri / stats hide-version stats auth someUser:somePassword
(可选)如果需要在HAProxy中添加RapidMiner Server实例,需要添加
server rapidminerserverX ip-address-of-instance:8080 cookie检查
到后端部分。启动服务后,负载平衡器就可以提供服务了
启动haproxy服务
。根据您使用的发行版,您可能需要设置启用= 1
在/etc/default/haproxy
配置文件。它将在所有配置的RapidMiner服务器实例之间进行负载平衡。如果您配置了统计数据现在,您可以访问端口上的负载均衡器的IP地址1936
与用户一起someUser
还有密码somePassword
监控HAProxy。