我已经组装了一个高可用性系统,如下图所示:
DNS RR -> Balancer1
\
\
HAproxy1 ---> Backend Servers
HAproxy2 ---> Backend Servers
HAproxy3 ---> Backend Servers
/
/
DNS RR -> Balancer2 简单地说:两个负载平衡器与VIP一起接收来自客户端的请求,然后在3台充当SSL卸载和后端平衡的HAproxy服务器之间分发它。
我现在的问题是DNS RR。它有它的好处,但我正在寻找一个更好的解决方案,在Balancer1和Balancer2之间分发客户端。有什么建议吗?
PS: GeoDNS不是一种选择。
发布于 2017-05-24 14:52:16
您可以使用CDN作为面向用户的客户端。然后,您将利用CDN的功能在平衡器主机上负载平衡。这可能包括DNS RR,但是CDN的配置是已知和管理的,因此您可以确信CDN将正确地响应后端更改。
例如,您可以使用Akamai路由用户请求。然后,您可以使用Akamai全球流量管理器(GTM)来控制Akamai使用的源。他们有一个“故障转移”和“循环”功能,您可以使用,Akamai的健康检查程序将管理哪些来源是可用的。他们也可以重试请求,如果他们遇到一个错误,与您的来源。
Amazon + Route53‘加权’记录+ Route53健康检查也实现了类似的功能。
即使您的内容不可缓存,这也是可行的,因为CDN不必专门用于可缓存的内容。它的好处是将用户引入到您控制的“边缘”附近的生态系统中,并且对CDN->原始连接的故障排除要比未知用户->起源容易得多。
此路径还为您提供了DoS保护的度量,因为您可以在边缘应用过滤器。
https://serverfault.com/questions/851914
复制相似问题