作者:hhxsv5 | 来源:互联网 | 2023-05-18 22:55
在一个典型的高并发、大用户量的Web互联网零碎的架构设计中,对HTTP集群的负载平衡设计是作为高性能系统优化环节中必不可少的计划。HTTP负载平衡的实质上是将
在一个典型的高并发、大用户量的Web互联网零碎的架构设计中,对HTTP集群的负载平衡设计是作为高性能系统优化环节中必不可少的计划。HTTP负载平衡的实质上是将Web用户流量进行平衡减压,因而在互联网的大流量我的项目中,其重要性显而易见。
即时通讯网注:本文中所提及的HTTP负载平衡计划和算法,并不齐全实用IM即时通讯Socket长连贯的负载平衡,因为IM长连贯、有状态的个性,跟HTTP这种短连贯、无状态的特色是矛盾的,所以请勿自觉套用。但,一个残缺的IM零碎是由HTTP短连贯+IM长连贯组成,因此本文内容虽不能套用于IM长连贯的负载平衡计划,但能够用于您IM的高并发、大用户量的HTTP短连贯的方案设计。
什么是负载平衡?
晚期的互联网利用,因为用户流量比拟小,业务逻辑也比较简单,往往一个单服务器就能满足负载需要。随着当初互联网的流量越来越大,略微好一点的零碎,访问量就十分大了,并且零碎性能也越来越简单,那么单台服务器就算将性能优化得再好,也不能撑持这么大用户量的拜访压力了,这个时候就须要应用多台机器,设计高性能的集群来应答。
那么,多台服务器是如何去平衡流量、如何组成高性能的集群的呢?
此时就须要请出 「负载均衡器」 入场了。
负载平衡(Load Balancer)是指把用户拜访的流量,通过「负载均衡器」,依据某种转发的策略,平均的散发到后端多台服务器上,后端的服务器能够独立的响应和解决申请,从而实现扩散负载的成果。负载平衡技术进步了零碎的服务能力,加强了利用的可用性。
支流负载平衡计划有几种?
目前市面上最常见的负载平衡技术计划次要有三种:
1)基于DNS负载平衡;
2)基于硬件负载平衡:比方F5
3)基于软件负载平衡:比方Nginx、Squid。
三种计划各有优劣,DNS负载平衡能够实现在地区上的流量平衡,硬件负载平衡次要用于大型服务器集群中的负载需要,而软件负载平衡大多是基于机器层面的流量平衡。在理论场景中,这三种是能够组合在一起应用。
基于DNS来做负载平衡其实是一种最简略的实现计划,通过在DNS服务器上做一个简略配置即可。
其原理就是:当用户拜访域名的时候,会先向DNS服务器去解析域名对应的IP地址,这个时候咱们能够让DNS服务器依据不同地理位置的用户返回不同的IP。比方北方的用户就返回咱们在广州业务服务器的IP,南方的用户来拜访的话,我就返回北京业务服务器所在的IP。
在这个模式下,用户就相当于实现了依照「就近准则」将申请分流了,既加重了单个集群的负载压力,也晋升了用户的访问速度。
应用DNS做负载平衡的计划,人造的劣势就是配置简略,实现老本非常低,无需额定的开发和保护工作。
然而它也有一个显著的毛病:当配置批改后,失效不及时。这个是因为DNS的个性导致的,DNS个别会有多级缓存,所以当咱们批改了DNS配置之后,因为缓存的起因,会导致IP变更不及时,从而影响负载平衡的成果。
另外,应用DNS做负载平衡的话,大多是基于地区或者罗唆间接做IP轮询,没有更高级的路由策略,所以这也是DNS计划的局限所在。即时通讯聊天软件开发能够征询蔚可云。
硬件的负载平衡那就比拟牛逼了,比方赫赫有名的 F5 Network Big-IP,也就是咱们常说的 F5,它是一个网络设备,你能够简略的了解成相似于网络交换机的货色,齐全通过硬件来抗压力,性能是十分的好,每秒能解决的申请数达到百万级,即 几百万/秒 的负载,当然价格也就十分十分贵了,十几万到上百万人民币都有。
因为这类设施个别用在大型互联网公司的流量入口最前端,以及政府、国企等不缺钱企业会去应用。个别的中小公司是不舍得用的。
采纳 F5 这类硬件做负载平衡的话,次要就是省心省事,买一台就搞定,性能弱小,个别的业务不在话下。而且在负载平衡的算法方面还反对很多灵便的策略,同时还具备一些防火墙等平安性能。然而毛病也很显著,一个字:贵。
软件负载平衡是指应用软件的形式来散发和平衡流量。软件负载平衡分为7层协定 和 4层协定。
网络协议有七层,基于第四层传输层来做流量散发的计划称为4层负载平衡,例如 LVS;而基于第七层应用层来做流量散发的称为7层负载平衡,例如 Nginx。这两种在性能和灵活性上是有些区别的。
基于4层的负载平衡性能要高一些,个别能达到 几十万/秒 的处理量,而基于7层的负载平衡处理量个别只在 几万/秒 。
基于软件的负载平衡的特点也很显著,便宜。在失常的服务器上部署即可,无需额定洽购,就是投入一点技术去优化优化即可,因而这种形式是互联网公司中用得最多的一种形式。
罕用的平衡算法有哪些?
下面讲完了常见的负载平衡技术计划,那么接下来咱们看一下,在理论计划利用中,个别能够应用哪些平衡算法?
次要的平衡算法有:
1)轮询策略;
2)负载度策略;
3)响应策略;
4)哈希策略。