如果您需要故障恢复能力,则可以构build多台服务器,每台服务器可以为任何客户端提供服务,并将数据放入某个SAN或共享数据库集群中。 但是,如果客户端直接连接到一台服务器,并且该服务器失败,则会出现networking错误。 您可以通过将负载均衡器放在它们的前面来解决这个问题,无论是PC中的软件基础还是专用硬件。 在这种情况下,单个服务器的死亡并不会导致客户端发生networking错误。
但是,负载均衡器本身可能会死亡。 所以你不是比以前好,对吧?
如果我假定DC确保数据包安全地到达我的服务器所在的交换机,那么有没有办法在一个IP上路由stream量,使得硬件故障不会导致连接丢失? 这可以做到没有专门的硬件? 或者我错过了一些不可能的原因?
为了争论,我们假定(非networking)悲剧被分解成消息,并且可以安全地caching和重放相同的消息,对于接收到但未被故障服务器拒绝的每个消息。
是的,你是对的,负载平衡器也可能死亡。 出于这个原因,你还需要有两个负载平衡器,而不是一个。 最简单的情况是当您使用configuration的VIP访问活动备用模式时,以主动 – 备用模式使用它们。 任何包含keepalive或heartbeat软件包的Linux机器都可以和haproxy一起作为HTTP / TCP负载平衡器。
当活动负载均衡器和/或访问的服务器死亡时,您将只丢失当前的连接,但随后的连接应该是正常的,因为您有冗余的活动服务器。
Pfsense不需要特殊的硬件,实际上可以在虚拟环境中运行。 它支持负载平衡和状态同步。
但总是会有一个故障转移时间 – 不过这个时间很短,所以总是会有一些丢失或者需要重新acks 。
我不确定任何高度可用的技术(CARP / VRRP / HSRP)能够防止数据包的完全丢失。 但对于TCP/IP ,无论如何都会被重新传输,所以不应该成为问题。