新闻资讯

漫画 | 打死我也不搞负载均衡了

日期: 2021-03-11
浏览次数: 60

这是1998年一个普通的上午, 张大胖刚上班就被老板叫去训话。

漫画 | 打死我也不搞负载均衡了


张大胖有个亲戚在卖IBM的服务器,经常吹嘘说性能有多好,张大胖就想花钱把现在的‘老破小’服务器给替换掉。

漫画 | 打死我也不搞负载均衡了


老板不管过程,只要结果。


大胖悻悻地去找Bill, 将老板的指示声情并茂地做了传达。

漫画 | 打死我也不搞负载均衡了


张大胖思索了一会儿,想出了用DNS做中间层的办法。


让网站的域名映射到多个服务器的IP!


用户面对系统的域名,查询IP的时候用轮询的方式。

漫画 | 打死我也不搞负载均衡了


这DNS系统也真是太不智能了, 张大胖没招了。


Bill决定另辟蹊径,开发一个自己的负载均衡软件。

漫画 | 打死我也不搞负载均衡了


Load Balancer 简称LB , 有两个IP,一个对外(115.39.19.22),一个对内(192.168.0.100)。


用户看到的是那个对外的IP。后面的真正提供服务的服务器有三个,称为RS1, RS2,RS3, 他们的网关都指向LB。

漫画 | 打死我也不搞负载均衡了


但是这个数据包一看就是发给Load Balancer的, 怎么发给后面的某个服务器呢?

漫画 | 打死我也不搞负载均衡了


等到RS1处理完了,要返回首页的HTML, 会把数据包发给网关LB, LB再次施展同样的手段,把IP和端口都修改成自己的, 再发给客户就行了。

漫画 | 打死我也不搞负载均衡了


修改IP地址和端口,计算机网络中的NAT(网络地址转换)思想在这里被用上了,张大胖决定把这种方式叫做NAT 负载均衡。

Bill 吩咐张大胖组织人力把这个负载均衡软件给开发出来。

漫画 | 打死我也不搞负载均衡了


三个月后,Load Balancer的第一版开发出来了,这是运行在Linux上的一个软件, 公司试用了一下,感觉还真是不错,仅仅用几台便宜的服务器就可以实现负载均衡了。

漫画 | 打死我也不搞负载均衡了


可是好景不长,张大胖发现这个Load Balancer存在着瓶颈。

所有的数据包都要通过它,不管是客户端发来的,还是要发给客户端的。

漫画 | 打死我也不搞负载均衡了


Bill 给出了一个新的方案:把请求和响应分开处理。

漫画 | 打死我也不搞负载均衡了


Bill展示了一张更加复杂的图:

漫画 | 打死我也不搞负载均衡了


张大胖通过第一版Load Balancer的开发,积累了丰富的经验。

所有服务器都有一个IP:115.39.19.22, 简称VIP。

每个实际的服务器的loopback都绑定到了这个VIP上。

但是,一个巨大的问题出现了:

漫画 | 打死我也不搞负载均衡了


漫画 | 打死我也不搞负载均衡了


RS1(192.168.0.10)这个服务器收到了数据包,拆开一看,目的地IP是115.39.19.22,是自己的IP, 那就可以处理了。

对于客户端来说,它看到的还是那个唯一的地址115.39.19.22, 并不知道后台发生了什么事情。

漫画 | 打死我也不搞负载均衡了


张大胖决定把这种方式叫做Direct Server(DR)模式。

几个月以后,DR模式也开发成功,并且部署到了生产环境上。

漫画 | 打死我也不搞负载均衡了


后记: 本文所描述的,其实就是著名开源软件LVS的原理,上面讲的两种负载均衡的方式,就是LVS的NAT和DR。LVS是章文嵩博士在1998年5月成立的自由软件项目,现在已经是Linux内核的一部分。


联系我们
客服热线:4008-578-875
电话:086-571-89716067
传真:086-571-89716067
地址:浙江省杭州市江干区九环路9号国家大学科技园1幢6楼
关注我们
Copyright ©2018-2022  YBM Technologies Pvt Ltd  杭州云备姆科技有限公司
犀牛云提供企业云服务