专栏名称: 刘超的通俗云计算
刘超,网易云解决方案首席架构师,代码级略懂OpenStack、Hadoop、Docker、Lucene、Mesos等开源软件,曾出版《Lucene应用开发揭秘》,个人博客可搜索popsuper1982。
目录
相关文章推荐
51好读  ›  专栏  ›  刘超的通俗云计算

如何基于DNS和Load Balancer做服务的负载均衡

刘超的通俗云计算  · 公众号  · 架构  · 2017-08-14 21:50

正文

我们来分析从外网访问内网的服务的具体过程:

首先我们看DNS和Load Balancer是怎么工作的。

  1. 客户端要访问我们的系统,发送了一个https请求,https://hello.mycompany.com

  2. 客户端的local resolver查看本地的缓存,是否能找到域名hello.mycompany.com

  3. 如果不能找到,则发送一个递归查询到本地的DNS服务器

  4. 本地的DNS服务器查看它的缓存,看是否能够找到域名

  5. 如果还是不能找到域名,则DNS服务器发送查询到root DNS服务器

  6. root DNS服务器找不到域名,返回.com域的DNS服务器地址给本地的DNS服务器

  7. 本地的DNS服务器发送查询到.com域的DNS服务器

  8. .com域的DNS服务器找不到域名,返回.mycompany.com域的DNS服务器给本地的DNS服务器

  9. 本地的DNS服务器发送查询到.mycompany.com域的DNS服务器

  10. .mycompany.com域的DNS服务器找到了域名hello.mycompany.com,返回一个别名hello.vip.mycomany.com,以及另外两个DNS Server的IP,这两个DNS Server我们分别称为dnsloadbalancer1 and dnsloadbalancer2

  11. 本地的DNS服务器选择其中一个,比如选择dnsloadbalancer1,来查找hello.vip.mycompany.com

  12. dnsloadbalancer1返回6个IP,这六个IP分别指向六个LoadBalancer,从LoadBalancer1到LoadBalancer6

  13. 本地的DNS服务器将这6个IP返回给客户端的Local resolver

  14. 客户端的Local Resolver在六个IP中,选择一个,比如选择LoadBalancer1

  15. 客户端连接LoadBalancer1,由于它是一个负载均衡,会将请求发给后端的多个hello服务的一个

  16. hello服务返回LoadBalancer1调用结果







请到「今天看啥」查看全文