几个负载均衡服务器监听单个IP /端口?

比方说,我有一个完全正常工作,负载平衡的应用程序服务器环境。

所有服务器都必须优雅地进行故障切换。 使用应用程序服务器相对容易,但是如何使用前端负载均衡器实现故障切换?

我可以让多个负载均衡器监听同一个IP和端口吗? 一旦我发现旧的死亡,我需要运行一个新的?

基本而言:

  • 您有两个或更多的负载平衡器在同一时间运行
  • 它们都configuration了相同的configuration,IP地址等
  • 他们心跳加速
  • 在任何时候只有一个活动
  • 当来自主动节点的心跳消失(失败)时,其余的将在下一次联机的人员之间进行协商

主动/被动群集中的高可用性基本上与您使用的技术无关,因此上述内容适用于负载平衡器,数据库服务器,虚拟机监控程序等。

在Linux中,这是通过组合工具完成的,其中一个实际上称为heartbeat (并且同步您的configuration通常是用drdb完成的)。

在Windows中,通常使用故障转移群集或networking负载平衡,两者都提供由多个服务器共享的虚拟IP地址。 同步您的configuration可以使用DFS-R进行networking负载平衡,或者集群实际上可以共享一个registryconfiguration单元,并在故障转移的情况下重新configuration它。

对于某些“真实的”Web服务器,我可能会在几天内testing以下内容作为高可用性负载平衡器:

  • 两台Archlinux服务器(非常“基本”的安装)
  • 每一个运行Pound作为反向代理和负载平衡器
  • Keepalived负责IP故障转移

我将运行一个主动/被动configuration,即每个IP(我有大约20个)只在其中一个服务器上处于活动状态。 如果其中一台服务器出现故障,另一台服务器将处理所有的IP。 英镑可以检测是否有一个networking服务器失败,并作出相应的行为:磅不会redirect任何请求,直到它再次healty。

不知道是否可以将类似的解决scheme应用于您的应用程序服务器,但我完全引用了Mark Henderson

虽然这个概念是相同的,但“硬件”负载均衡器往往只是使用上述概念的专有实现