类别

版本

您正在查看9.2 -版本的RapidMiner服务器文档点击这里查看最新版本

负载均衡器

有几种解决方案可以在同一应用程序的不同实例之间实现负载平衡(Nginx负载均衡器的商业版本弹性负载均衡),但HAProxy是当前支持会话粘性的负载平衡的开源首选解决方案,因此将在本指南中介绍。它能够处理大量的流量。与nginx类似,它使用单进程,事件驱动模型,因此具有低内存指纹,能够处理大量并发请求。

本文介绍了如何设置HAProxy以在两个RapidMiner Server实例之间实现负载平衡,但本指南不涉及SSL配置。

设置

请确保遵循本文中概述的步骤。负载均衡器应该是一台专用的机器,它只负责重定向流量和负载平衡几个RapidMiner服务器实例。在这个设置中,我们假设您使用的是一台Ubuntu机器,并且SSL配置不会在负载平衡器中完成,而是在一个附加的负载平衡器中完成反向代理

  1. 安装haproxy使用您的发行版的包管理器。对于Ubuntu,有一个专门的存储库来安装haproxy包:

    Sudo add-apt-repository ppa:vbernat/haproxy-1.8 Sudo apt-get update Sudo apt-get install -y haproxy
  2. 安装完成后,HAProxy配置可以在下面找到/etc/haproxy/haproxy.cfg。默认配置分为两个部分:全球违约。如果您想要更改运行HAProxy进程的用户或调整某些日志记录行为,可以在这些部分中执行这些操作。看到HAProxy文档了解更多详情。对于我们的基本设置,我们将跳过这些,只定义两个额外的部分:前端后端。的前端部分包含HAProxy接收传入流量的连接。的后端部分包含HAProxy重定向和负载平衡流量到的连接。

  3. 添加前端到你的haproxy.cfg

    前端localnodes bind *:80 mode HTTP default_backend rapidminerservers

    在这个示例设置中,HAProxy将监听所有网络接口上的请求(*)在港80但只针对HTTP协议。的前端路段作为交通输入。中定义的节点之间负载均衡所有来自该端口的观察/传入流量后端部分rapidminerservers(交通输出).

  4. 添加后端到你的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

  5. (可选)添加统计网站,监控流量和负载均衡。调整你的haproxy.cfg并添加:

    listen stats *:1936 stats enable stats uri / stats hide-version stats auth someUser:somePassword
  6. (可选)如果需要在HAProxy中添加RapidMiner Server实例,需要添加server rapidminerserverX ip-address-of-instance:8080 cookie检查后端部分。

  7. 启动服务后,负载平衡器就可以提供服务了启动haproxy服务。根据您使用的发行版,您可能需要设置启用= 1/etc/default/haproxy配置文件。它将在所有配置的RapidMiner服务器实例之间进行负载平衡。如果您配置了统计数据现在,您可以访问端口上的负载均衡器的IP地址1936与用户一起someUser还有密码somePassword监控HAProxy。