Balance load负载均衡就是用多台服务器组成服务器阵列,服务器之间是对称的,能够独立地为客户提供服务,它是对系统的横向扩展。采用负载均衡技术一方面能克服集中式服务器的单点故障,增强系统可用性,提高系统的吞吐量;另外一方面负载均衡能够以较高的性价比对系统进行升级。实现负载均衡的常见方式有下面几种:
1 HTTP重定向方式
HTTP重定向在网页登陆时最常见,当用户输入账号密码,点击登陆后,服务器判断登陆信息是否正确,正确时跳转到操作界面,错误时跳转到失败界面。该方式利用HTTP协议实现负载均衡,它的原理是:客户端访问应用服务器时,应用服务器不返回响应内容,而是根据一定策略返回一个重定向指令(302 Moved Temporarily),客户端浏览器接到指令后,跳转到指令中指定的服务器地址。
2 DNS解析方式
广域网中访问某主机,必须知道其IP地址,我们能够通过域名来访问它,是因为DNS服务自动解析出了域名所对应的IP地址。这种方式实现负载均衡的原理是为一个域名设置多个ip地址(多个A记录),当用户访问该域名时,域名服务器按顺序依次解析服务器的IP地址,将用户的访问分配到不同的服务器上,该机制的特点是实现简单,成本低。
3 反向代理方式
正向代理方式是客户使用代理服务器访问多个Web 服务器,而反向代理方式是多个客户使用它访问内部Web服务器。它的原理是让反向代理服务器均匀地将用户请求分布在各个内部服务器中,从而达到负载均衡的目的,常见的有nginx。
该方式可以根据内部服务器的性能差异和实时负载情况动态得进行负载均衡,以保证访问效率;代理服务器可以引入缓存机制,对服务器返回的资源进行缓存,降低原始服务器的负载;安全性方面,反向代理服务器屏蔽了用户对服务器的真实访问,也可以为不安全的连接建立安全的通道,以提供更高的安全保障。
4 LVS负载均衡
LVS的全称是:Linux Virtual Server,Linux虚拟服务器,是由章文嵩博士发起的自由软件项目,目前LVS已经是Linux内核的一部分,它通过Linux系统和LVS来实现负载均衡。LVS由三个部分构成:一是Load Balancer层,由一个或多个调度器构成;二是Server Array层,由多个实际的服务器构成,比如WEB服务器、Mail服务器、视频服务器等等;三是Shared Storage层为所有Real Server提供共享存储空间和内容一致性的存储区域。
5 CDN
Content Delivery Network,内容分发网络,它的原理是利用缓存、复制技术将数据分布在不同地理位置的服务器上,从而提高位于不同地方用户的访问速度。几年前打开网站经常碰到图片无法加载,或者视频缓冲慢的的情况,现在很少有这种情况,这些内容可能已经缓存或者复制到了离你最近的服务器上。