类别

版本

负载均衡器

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

本文介绍了如何在两个RapidMiner Server实例之间设置HAProxy以实现负载平衡,但本指南不涉及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绑定*:80模式HTTP default_backend rapidminerservers

    在这个示例设置中,HAProxy将侦听所有网络接口上的请求()在港口80但仅限于HTTP协议。的前端Section作为流量输入.中定义的节点之间负载均衡所有从该端口观察到的/传入的流量后端部分rapidminerservers(交通输出).

  4. 添加后端的部分haproxy.cfg

    backend rapidminerserver2 mode http balance roundrobin 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 check server rapidminerserver2 ip-address-of-second-instance:8080 cookie check
    • http方式:这将把HTTP请求传递到列出的服务器。
    • 此平衡循环:使用循环负载分配策略。
    • 选择forwardfor:添加X-Forwarded-For头,以便RapidMiner服务器实例可以获得客户端的实际IP地址。如果没有这个,RapidMiner服务器实例将把每个传入的请求视为来自负载均衡器的IP地址。
    • http-request set-header X-Forwarded-Port %[dst_port]:手动添加X-Forwarded-Port头,以便RapidMiner服务器实例知道重定向时使用哪个端口。
    • httpchk HEAD / HTTP/1.1\r\nHost:localhost:设置HAProxy用于测试RapidMiner Server实例是否仍在响应的健康检查。如果这些服务器不能正确响应,则从HAProxy中删除服务器。这将发送一个带有HTTP/1.1和宿主标题设置。
    • http-request add-header X-Forwarded-Proto https if {ssl_fc}:添加X-Forwarded-Proto头,并将其设置为“https”,如果“https”方案用于“http”(viassl_fc).类似于转发端口报头,这可以帮助RapidMiner服务器实例确定在发送重定向时使用哪种方案。
    • cookie RAPIDMINER_SRV前缀:添加唯一的会话标识。在这个帮助下,会话被启用。
    • 服务器rapidminerserver1 ip-address-of-first-instance:8080 cookie check:为HAProxy添加RapidMiner Server实例,实现流量均衡。设置它们的IP地址和端口(RapidMiner Server的默认端口为8080),并添加check指令告诉HAProxy对服务器进行健康检查。的饼干指令告诉HAProxy总是为会话重用同一服务器(粘性)。

    确保负载均衡器可以到达端口上的所有RapidMiner Server实例8080

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

    监听stats *:1936 stats启用stats uri / stats隐藏版本stats认证someUser:somePassword
  6. (可选)如果需要在HAProxy中添加RapidMiner Server实例,请执行添加操作server rapidminerserverX ip-address-of-instance:8080 cookie check后端部分。

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