面对大量用户访问、高并发恳求,海量数据,能够运用高性能的效劳器、大型数据库,存储设备,高性能Web效劳器,采用高效率的编程言语比方(Go,Scala)等,当单机容量到达极限时,我们需求思索业务拆分和散布式部署,来处理大型网站访问量大,并发量高,海量数据的问题。
从单机网站到散布式网站,很重要的区别是业务拆分和散布式部署,将应用拆分后,部署到不同的机器上,完成大范围散布式系统。散布式和业务拆合成决了,从集中到散布的问题,但是每个部署的独立业务还存在单点的问题和访问统一入口问题,为处理单点毛病,我们能够采取冗余的方式。将相同的应用部署到多台机器上。处理访问统一入口问题,我们能够在集群前面增加负载平衡设备,完成流量分发。
负载平衡(Load Balance),意义是将负载(工作任务,访问恳求)停止均衡、分摊到多个操作单元(效劳器,组件)上停止执行。是处理高性能,单点毛病(高可用),扩展性(程度伸缩)的
处理计划。
本文是负载平衡详解的
篇文章,引见负载平衡的原理,负载平衡分类(DNS负载平衡,HTTP负载平衡,IP负载平衡,链路层负载平衡,混合型P负载平衡)。局部内容摘自读书笔记。
本次分享大纲
负载平衡原理
DNS负载平衡
HTTP负载平衡
IP负载平衡
链路层负载平衡
混合型P负载平衡
一、负载平衡原理
系统的扩展可分为纵向(垂直)扩展和横向(程度)扩展。纵向扩展,是从单机的角度经过增加硬件处置才能,比方CPU处置才能,内存容量,磁盘等方面,完成效劳器处置才能的提升,不能满足大型散布式系统(网站),大流量,高并发,海量数据的问题。因而需求采用横向扩展的方式,经过添加机器来满足大型网站效劳的处置才能。
比方:一台机器不能满足,则增加两台或者多台机器,共同承当访问压力。这就是典型的集群和负载平衡架构:如下图:
应用集群:将同一应用部署到多台机器上,组成处置集群,接纳负载平衡设备分发的恳求,停止处置,并返回相应数据。
负载平衡设备:将用户访问的恳求,依据负载平衡算法,分发到集群中的一台处置效劳器。(一种把网络恳求分散到一个效劳器集群中的可用效劳器上去的设备)
负载平衡的作用(处理的问题):
1.处理并发压力,进步应用途理性能(增加吞吐量,增强网络处置才能);
2.提供毛病转移,完成高可用;
3.经过添加或减少效劳器数量,提供网站伸缩性(扩展性);
4.平安防护;(负载平衡设备上做一些过滤,黑白名单等处置)
二、负载平衡分类
依据完成技术不同,可分为DNS负载平衡,HTTP负载平衡,IP负载平衡,链路层负载平衡等。
2.1DNS负载平衡
最早的负载平衡技术,应用域名解析完成负载平衡,在DNS效劳器,配置多个A记载,这些A记载对应的效劳器构成集群。大型网站总是局部运用DNS解析,作为
级负载平衡。如下图:
优点
运用简单:负载平衡工作,交给DNS效劳器处置,省掉了负载平衡效劳器维护的费事
进步性能:能够支持基于地址的域名解析,解析成间隔用户最近的效劳器地址,能够加快访问速度,改善性能;
缺陷
可用性差:DNS解析是多级解析,新增/修正DNS后,解析时间较长;解析过程中,用户访问网站将失败;
扩展性低:DNS负载平衡的控制权在域名商那里,无法对其做更多的改善和扩展;
维护性差:也不能反映效劳器的当前运转状态;支持的算法少;不能辨别效劳器的差别(不能依据系统与效劳的状态来判别负载)
理论倡议
将DNS作为
级负载平衡,A记载对应着内部负载平衡的IP地址,经过内部负载平衡将恳求分发到真实的Web效劳器上。普通用于互联网公司,复杂的业务系统不适宜运用。如下图:
1.3 IP负载平衡
在网络层经过修正恳求目的地址停止负载平衡。
用户恳求数据包,抵达负载平衡效劳器后,负载平衡效劳器在操作系统内核进程获取网络数据包,依据负载平衡算法得到一台真实效劳器地址,然后将恳求目的地址修正为,取得的真实ip地址,不需求经过用户进程处置。
真实效劳器处置完成后,响应数据包回到负载平衡效劳器,负载平衡效劳器,再将数据包源地址修正为本身的ip地址,发送给用户阅读器。如下图:
IP负载平衡,真实物理效劳器返回给负载平衡效劳器,存在两种方式:
(1)负载平衡效劳器在修正目的ip地址的同时修正源地址。将数据包源地址设为本身盘,即源地址转换(snat)。
(2)将负载平衡效劳器同时作为真实物理效劳器集群的网关效劳器。
优点:
(1)在内核进程完成数据分发,比在应用层分发性能更好;
缺陷:
(2)一切恳求响应都需求经过负载平衡效劳器,集群更大
吞吐量受限于负载平衡效劳器网卡带宽;
常州永佳软件技术有限公司专注于网站建设、微信公众平台开发、APP定制等科技转化型的业务永佳软件以“定制开发”为核心,针对不同行业为企业提供信息化解决方案,秉承“诚信、专注、尽责、创新”的理念,与客户携手合作,共创辉煌未来!