由于华山派适应了武林最新的潮流,业务不断发展壮大,访问华山派官网的用户越来越多。很快,有的用户发现,访问华山派官网经常出现这样的错误:
HTTP 500.13
这是因为服务器太忙啦。
在此插播广告一则:
基于AMD EPYC处理器的服务器,2路服务器可以支持128个核心,非常适用于高并发Web服务器的场景。
然而……
再让我们看一次这张经典的图:
为了避免“一核有难,多核围观”的场景出现,工程师们利用虚拟化技术,可以将128个核的服务器,虚拟化为32台虚拟机,每虚拟机具有4个处理器内核,运行一个WebLogic服务器实例——
问题来了。
我们知道,每个VM都会有一个自己的IP地址,而网站的域名通常只能指向一个IP地址。怎么样让域名指向的IP地址对应到多个VM呢?
实际上,这个办法并不难解决——
如图,多个VM都在10.152.130.0/24网段内,而防火墙对外的IP地址是74.206.167.247,也就是说,来自全球的用户访问这个站点时,防火墙需要进行DNAT,将原有的公网目的地址74.206.167.247转换为私网IP地址。
我们知道,内网用户外访时,SNAT可以配置出口地址池——M个内网IP与N个外网IP之间进行映射转换。那么,如果在外网用户访问内网的DNAT实现,也引入地址池机制……
令狐冲发动自己的聪明才智,又去防火墙上修改代码……
在防火墙增加了DNAT机制以后,外网访问内网多个VM可以实现负载均衡。接着,令狐冲又丰富了负载均衡的算法,在简单直接的round-robin (轮转)算法基础上,又增加了基于权重的轮转(Weighted Round-Robin)算法等,以及基于服务器业务健康度的负载均衡调度算法。
由于防火墙增加了负载均衡功能以后,实际上已经超越了防火墙本身的功能,并且,它在网络中的位置也发生了变化,岳不群给它起了个名字,就叫做“LB”(Load Balance)设备,并邀请了各路大师参加发布会。
在发布会上,各位大师们开心地发表了自己的观点:
蔡元培说:没有什么计算业务,是一台安装了128核心的R4950服务器搞不定的!
胡适说:如果一台不够,就再加一台,再加一台还不够,就再再加一台……
鲁迅出来说:没有负载均衡设备,你们说的都只能停留在口头上!
然而,随着时代的变迁,令狐冲发现,负载均衡设备遇到了难以解决的新问题……
欲知后事如何,请看下回分解。