【MCA进阶杂记】关于三高——负载均衡(一)什么是负载均衡
作者:互联网
**注:本文参考CSDN作者@jessicaiu的相关文章,传送门点击此处
负载均衡是什么
当有大量流量对服务进行访问时,负载均衡服务会根据算法,将巨大得流量分配到后端的集群服务,来提高系统的并行扩展性能。并且负载均衡技术还可以针对于外网屏蔽内网服务器,从而提高系统的可用性(即高可用)
负载均衡的功能与特征
流量分发:负载均衡服务会把流量分发到后端的多个节点上,从而实现集群的横向扩展(基于应用层内容,七层服务)
系统高可用:通过加入后端多个节点,可显著提高服务的可用性。并且负载均衡服务一般会集成健康检测
在线扩容/缩容:当负载均衡服务结合云计算后,可以做到在线服务的弹性伸缩,结合监控等其他信息,还可以实现自定义的弹性伸缩策略,实现高峰期预先扩容,低峰缩容
负载均衡使用建议
1.优先使用无状态服务:有状态服务在服务架构较为简单时虽然有易开发,高并发等优势,但随着业务增加,也会造成异常恢复困难(这里是因为可能会用到session,如果当前服务器宕机,则需要将当前服务器的session会话迁移到其他服务器,这一点是比较繁琐的)、难以并行扩展等问题
2.注意健康检查配置:
(1)健康检查判断过于敏感,在系统压力较大时错误判断而删除正常节点,导致剩余节点压力过大,从而继续删除节点操作,最终导致雪崩。
解决方式:采用快速拉起缓慢宕机的策略,适当拉长节点异常宕机时周期,减少错判的概率。
(2)健康检查宕机参数时间设置过长,结果在节点宕机时无法快速拉起,影响用户访问。
解决方式:在线上压力较小、健康检查接口相应正常的情况下,可以考虑缩短宕机时间,在异常时可以快速移除异常节点,减少对用户的影响
3.接入负载均衡无法保障高可用:服务的高可用不止是负载均衡,需要考虑整体架构,负载均衡只是在接入层,其他各层都需要考虑
4.接入负载均衡后并不会实现业务加速:负载均衡是一个高性能的转发服务,而对于单次请求来说,是无法做到性能加速的。负载均衡对性能的提升,是通过分担负载带来的并行扩展能力从而提升服务的稳定性的。而由于业务并行扩展,造成单台压力变小,从而提高服务的整体性能
负载均衡方式
硬件负载均衡:需要专门的硬件设备,性能很强,但价格高,扩展、升级成本高,不利于二次开发
软件负载均衡:性能不及专门的硬件,但价格低,易扩展,利于二次开发
负载均衡服务
有以下几种:
(1)四层负载:IOS协议中的传输层(TCP协议或SSL协议),TCP作为传输层基础协议可直接兼容应用层各种协议
(2)七层负载:ISO协议中的网络层(HTTP/HTTPS协议)
(3)其他:ICMP、POP3邮件协议,数据库协议等
对于web服务,可直接使用HTTP负载均衡。而针对于长连接,或者其他非HTTP协议(mysql,redis等),统一使用TCP协议
常见的负载均衡服务器
Apache,LVS,Nginx,Haproxy
按类型:Apache,Nginx属于七层负载均衡,LVS属于四层,Haproxy则同时支持四层和七层
按功能:LVS,Haproxy是专门的负载均衡服务器,Apache和Nginx除此之外,还可以作为独立的web服务器,直接提供web服务(PHP就可以和这二者其一进行搭配)
标签:负载,服务,进阶,宕机,均衡,服务器,节点 来源: https://www.cnblogs.com/kevin-1990/p/16370744.html