面试官:说说你知道的几种负载均衡分类
负载均衡其实就是任务的分发,使得任务能按照你的预想分配到各个计算单元上,它能提高服务对外的性能,避免单点失效场景。这里要注意的一点是虽说叫负载均衡,但是有时候我们的分配算法就是不是均衡的。
比如配个nginx,做两台服务器的负载均衡,一台机子比较老是以前的配置比较低,一台是新机子配置高,那我们的分配权重可能就是3-7分,而不是五五开
。所以是预想分配。但是业界还是习惯按照负载均衡来表达这个任务分配机制。
负载均衡分类
负载均衡常见的有:软件负载均衡、硬件负载均衡、DNS负载均衡。
软件负载均衡
软件负载均衡是最常见的,大小公司都需要用到它。
软件负载均衡是通过负载均衡功能的软件来实现负载均衡,常见的软件有LVS、Nginx、HAProxy。
软件负载负载均衡又分四层和七层负载均衡,四层负载均衡就是在网络层利用IP地址端口进行请求的转发,基本上就是起个转发分配作用。而七层负载均衡就是可以根据访问用户的HTTP请求头、URL信息将请求转发到特定的主机。
LVS为四层负载均衡。Nginx、HAProxy可四可七。
Nginx是万级别的,通常只用它来做七层负载,LVS来做四层负载。LVS是十万级别的,所以如果顶不住常见的也有这样的搭配。
软件负载均衡的优点在于便宜而且简单灵活,就买个主机,装下软件,配置一下就能用了,配置也很简单对于一般小型企业,或者并发量不高的企业来说就够用了。而且在高峰期时容易扩容。
缺点在于(和硬件负载均衡比)性能一般,流量很大的企业就用软件负载均衡顶不住,没防火墙或者防DDos攻击等安全性功能。
硬件负载均衡
硬件负载均衡就是用一个硬件一个基础网络设备,类似我们的交换机啊这样的硬件,来实现负载均衡。
常见的硬件有F5、A10。
优点就是:
1.功能强大,支持全局负载均衡提供全面的复杂均衡算法。
2.性能强悍,支持百万以上的并发。
3.提供安全功能,例如防火墙,防DDos攻击等。
这么一听我靠这么吊谁不用啊赶紧买个。别急我们下面个图片。
这网上找的,价格升序了最低也得15万,高的我看到有90万的。
缺点:
1.贵!这算是它最大的缺点了。为了安全通常还得一主一备,啧啧。
2.扩展能力差,当访问量突增的时候超过限度不能动态扩容。
DNS负载均衡
这个负载均衡时通过DNS来的,因为DNS解析同一个域名可以返回不同的ip。所以例如哈尔滨的人访问百度就返回距离他近的那个机房的IP,海南的人访问百度就返回距离他近的那个机房的IP。所以主要是用来实现地理级别的负载均衡。
优点就是:
1.简单,交给DNS服务器处理咱们都不用干活
2.因为是就近访问可以减少响应的时间,提升访问速度
缺点:
1.DNS有缓存而且缓存时间较长,所以当机房迁移等需要修改DNS配置的时候,用户可能还会访问之前的IP,导致访问失败。
2.扩展能力差,因为运营商管理控制的,由不得我们定制或者扩展。
3.比较笨,不能区分服务器之间的差异,也不能反映服务器的当前运行状态
使用套路
DNS负载均衡是地理级别的,硬件负载均衡对应的是集群级别的,软件负载均衡对应的是机器级别的。
不过一般而言像小公司或者流量不大的公司都是只需要软件负载均衡,也可能LVS都不需要上所以是按实际情况删减上图的一些东西。真正公司发展起来用户量激增才会考虑多机房和上硬件,毕竟是需求的驱使和不差钱了。
如有错误欢迎指正!
个人公众号:yes的练级攻略
有相关面试进阶(分布式、性能调优、经典书籍pdf)资料等待领取