在 Windows 中,我们可以为任意 IP 服务设置负载平衡,只需安装 NLB 并选择我们想要在集群中的哪些节点。它做了一些 MAC 地址更改,然后有算法来决定哪个节点处理传入的请求。
是否有与 Linux 相当的生产级?我不希望需要前端服务器物理地(网络方式)坐在机器前面的东西(就像某些硬件 LB 所做的那样,Linux 虚拟服务器所做的,AFAIK)。我想要一些类似于微软 NLB 的东西——选择 N 个节点,它们都在同一个 IP 上侦听,并分配传入的请求。
在 Windows 中,我们可以为任意 IP 服务设置负载平衡,只需安装 NLB 并选择我们想要在集群中的哪些节点。它做了一些 MAC 地址更改,然后有算法来决定哪个节点处理传入的请求。
是否有与 Linux 相当的生产级?我不希望需要前端服务器物理地(网络方式)坐在机器前面的东西(就像某些硬件 LB 所做的那样,Linux 虚拟服务器所做的,AFAIK)。我想要一些类似于微软 NLB 的东西——选择 N 个节点,它们都在同一个 IP 上侦听,并分配传入的请求。
见: http: //lnlb.sourceforge.net/
似乎正是你所要求的。
该页面将其总结为:所有节点之间共享的公共 IP(在虚拟接口上)。您所要做的就是在虚拟接口上绑定,其余的由驱动程序完成。
这听起来很像 Windows NLB。
如果你想要像 NLB 这样的负载平衡,你应该看看 iptables 中的 clusterip。-> http://security.maruhn.com/iptables-tutorial/x8906.html
它完全一样,只是缺少故障转移部分,但也许有一些工具可以做到这一点。
以下是人们在 Linux 社区中发现的一些非常好的东西(根据您的要求减去 LVS)。我个人只使用了 HAProxy,所以你的里程可能会有所不同。
HAProxy
余额
仅支持 http/https 请求的负载均衡:
Pound
PLB - 纯负载均衡器
循环 DNS 将是最简单的解决方案,但对于您的要求而言,它可能太简单了。
LVS 仍然是要走的路——您不必将它安装在单独的硬件上以使其对传入请求进行负载平衡。实际上,您仍然将负载均衡器和后端服务视为独立的事物,但它们恰好安装在相同的物理主机中。