2016-11-28 75 views
0

负载均衡器和服务链路都可以实现服务的高可用性。 负载均衡器通过代理服务器,而通过DNS服务链接。我可以使用服务链接而不是负载平衡器吗?

因为这个DNS只属于Rancher本身,所以公共服务只能使用负载平衡器来分配请求。

但是对于内部服务,如果服务链接与负载平衡器相同? 服务链接是否可用于高度可用性?

由于DNS缓存,请求是否可能无法平衡分配?

例如:

服务backend,3个容器,backend_1backend_2backend_3

服务nginx的,使一个proxy_passbackend

难道总是传递给backend_1,因为它一旦DNS来backend_1,它总是使用backend_1

换句话说,我可以使用服务连接而不是负载均衡器来进行内部服务吗?

回答

0

这是自问自答的牧场主论坛:https://forums.rancher.com/t/load-balancer-or-service-link/4719/2

根据客户端的行为,得到的答复是介于“完全不正确的平衡”,并作为一个简单的方法粗略地平衡“工程确定要求”。

DNS服务器会返回一个答案与的(健康)的IP地址的所有backend容器在每次它要求随机顺序,以1秒的TTL。

但客户端可以自由地做任何喜欢的信息。有些人会拿第一个答案,其他人会从列表中随机选择,或者not so randomly。有些人会尊重TTL,其他人会将这些值缓存一段时间,或者直到请求失败等等。

Nginx具体会在启动时默认解析一次名称。为了让它做任何事你必须给它一个resolver。任何主机上的牧场主DNS服务始终为169.254.169.250

+1

请问您是否可以尝试在您的答案中包含链接的相关部分?链接倾向于打破,这将使这个问题得不到解决。有关更多信息,请参阅[如何解答](http://stackoverflow.com/help/how-to-answer)。 – hbaderts