网站要处理超大规模的访问量,高并发请求,给用户良好的体验离不开web性能优化,web性能优化的基本解决方案为

HTML静态化、图片服务器分离、数据库集群、负载均衡,其中负载均衡是最有效的提升网站性能的方法之一

网站架构背景

单机结构:所有代码部署在一个项目,这个项目部署在一台服务器上
特点:使用简单、配置成本低,数据共享程度高,集中输入速度低,不能允许并发操作,并且不能进行分布式处理

集群:同一个项目部署在多个服务器(节点)上,每个节点提供相同的服务,如果用户发出请求,由负载均衡服务器根据当前所有节点的负载情况,决定将这个请求交给哪个节点处理
特点:系统利于扩展,层次功能分明,调度复杂

负载均衡 削峰 限流 负载均衡优化_负载均衡 削峰 限流

 

分布式结构:完整的系统分成若干个独立的子系统(服务),独立运行在web容器中,分布在不同的服务器中,通过RPC方式通信;利用大量计算机节点完成单个计算机无法完成的计算和存储服务
特点:降低了子系统耦合度,易于维护,易于开发,提高复用性

网站目前大部分采用分布式集群结构,这个结构能够支持高并发访问,快速响应用户请求,但是因为存在大量计算机节点,均衡的调度就非常重要

负载均衡 削峰 限流 负载均衡优化_负载均衡 削峰 限流_02

负载均衡

概念:如果一组计算机节点(或者一组进程)提供相同的(同质的)服务,那么对服务的请求就应该均匀的分摊到这些节点上

意义:让所有节点以最小的代价、最好的状态对外提供服务,提高系统吞吐量,缩短用户访问时间,它增强了系统的可靠性,最大化降低了单个节点过载、甚至宕机的概率

负载均衡 削峰 限流 负载均衡优化_负载均衡_03

 

常见负载均衡技术

DNS:域名作为访问入口,通过配置多条DNS A记录使得请求可以分配到不同的服务器

CDN:通过发布机制将内容同步到大量的缓存节点,并在DNS服务器上进行扩展,找到里用户最近的缓存节点作为服务提供节点

IP负载均衡:分为软件(LVS、HAProxy、NginX)和硬件(F5-BIG-IP-GTM),从网络层分为四层(LVS)和七层(NginX,HAProxy, Apache)

      硬件负载均衡--性能和稳定性更好,而且商用产品的可管理性、文档和服务比较好,价格贵

      软件负载均衡--开源软件,自由度较高,但学习成本和管理成本会比较大

负载均衡算法

  • 轮询算法(round-robin)
  • 加权轮询算法(weight round-robin)
  • 随机算法(random)
  • 加权随机算法(random)
  • 哈希法(hash)
  • 一致性哈希
  • 最少连接算法