该设置是一个服务器(Windows 2008)在一个位置与两个传入连接。 由于服务器必须与各种现场设备连接,并且只有less量的input连接,所以不能select数据中心,而必须使用cable / dsl连接。
目标是用户访问https://service.site.com并发送到主要IP地址或次要IP,如果主要closures。
我已经看到build议使用循环DNS来做这件事,但是caching一个停止接口的IP是我想避免的。
这样的约束是可能的吗?
如果第一次连接尝试失败,大多数浏览器都会尝试备用的可用地址 。 但是,这显然是实现依赖的,没有RFC指令或build议。 所以,如果你需要确定 ,你将不得不修改你的DNS区域,并删除失败的链接的IP地址。 caching问题可以通过将TTL降低到一个较低的值来处理–300秒是相当常见的,并且是caching效率和数据当前性之间的良好折衷。
DNS RR的一个可能的问题是,没有办法为DNSlogging指定任何types的优先级(由于缺乏浏览器支持,无法使用DNS SRVlogging),因此客户端将发送请求到两个地址在DNS响应中logging的轮换。 如果你的一个链接比另一个更“昂贵”(不pipe用什么术语),除非主链接失败,否则你不会使用它,但是DNS RR并不是你的问题的正确解决scheme。
另一种select是在备用位置/通过备用链路(假定比DSL /电缆链路具有更好的正常运行时间 – 例如数据中心中的虚拟机)使用反向代理,主动监视你的两个连接并处理故障转移自动无需更改DNSlogging。
这样的约束是可能的吗?
没有。
如果负载均衡器背后有多个服务器,则需要负载均衡器始终处于联机状态。 有多种方法可以实现这一点,例如,负载平衡器可能实际上并不是一台服务器 – 可能有很多人假装是一台服务器。 如果一个失败,另一个接pipe。
但是,有一个假设,就是在远端,有些东西可以满足要求。
如果你发现自己处于链路死亡的情况,那么数据包将无法到达你的服务器 – 对此你绝对无能为力。 DNS RR是最好的事情,因为你告诉客户去尝试另一个IP地址。 否则,客户端将愉快地重试相同的IP,并得不到回应,并放弃。
最前面的服务必须始终可以使用这些工作。 没有这一点,它根本不能。 HA解决scheme通常假设链接是好的。 是的,有数据中心级故障切换(例如,对于国家/地区级Powercut),但它们也具有关联的停机时间,将会使stream量收敛到不同的IP集合 – 这绝不会是即时的。