Werlone / Nginx一网打尽
引言
代理服务器的概念,其主要作用之一就是用于负载均衡与请求分发,那么先来看看为何需要做请求负载。
早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增长,就会造成线上频繁宕机的现象发生,最终导致系统瘫痪无法继续处理用户的请求。
从上面的描述中,主要存在两个问题:
①单体结构的部署方式无法承载日益增长的业务流量。
②当后端节点宕机后,整个系统会陷入瘫痪,导致整个项目不可用。
因此在这种背景下,引入负载均衡技术可带来的收益:
-
• 系统的高可用:当某个节点宕机后可以迅速将流量转移至其他节点。
-
• 系统的高性能:多台服务器共同对外提供服务,为整个系统提供了更高规模的吞吐。
-
• 系统的拓展性:当业务再次出现增长或萎靡时,可再加入/减少节点,灵活伸缩。
既然引入负载均衡技术可给我们带来如此巨大的好处,那么又有那些方案可供选择呢?主要有两种负载方案,硬件层面与软件层面,比较常用的硬件负载器有A10、F5
等,但这些机器动辄大几万乃至几十万的成本,因此一般大型企业会采用该方案,如银行、国企、央企等。
而成本有限,但依旧想做负载均衡的项目,那么可在软件层面实现,如典型的Nginx
等,软件层的负载也是本文的重点,毕竟Boss
们的准则之一就是:能靠技术实现的就尽量不花钱。
本内容转载出处:竹子爱熊猫(微信公众号)