聊聊云计算:为什么构建网站时常会用到负载均衡

对于用户数较多、负载较大的网站,我们通常都会使用负载均衡(LB:Load Balance)来增加服务器的承载能力。负载均衡是云计算的一个基本服务组件,通常都会搭配云主机来构建云服务,比如阿里云的SLB(Server Load Balancer)、腾讯云的CLB(Cloud Load Balancer)。

聊聊云计算:为什么构建网站时常会用到负载均衡

我自己是一名大数据架构师,每天都会直播分享免费公开课,大家可以加群参加。以及我自己整理了一套最新的大数据学习系统教程,包括Hadoop,数据挖掘,数据分析。送给正在学习大数据的小伙伴!这里是大数据学习者聚集地,欢迎初学和进阶中的小伙伴!

加QQ群:684290783(招募中)

负载均衡可以将客户端请求分摊到多个操作单元上进行处理

硬件负载均衡

负载均衡有很多种不同的实现方式,总的来说,可以分为硬件负载均衡与软件负载均衡两大类。

硬件负载均衡有很多设备商可以提供解决方案,比如NetScaler、F5、Array Networks等。硬件负载均衡的优势比较明显:有专业团队进行维护、性能好、且稳定可靠。

聊聊云计算:为什么构建网站时常会用到负载均衡

F5负载均衡器

但硬件负载均衡解决方案也有缺点,比如设备和服务费用昂贵,灵活性差,功能和容量都难以扩展。软件负载均衡相对来说,灵活性强,扩展起来更容易,所以软件负载均衡解决方案越来越受到青睐。

DNS负载均衡

软件负载均衡最早通过DNS来实现,即一个域名对应多个IP地址。在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。

DNS负载均衡的解决方案原理比较简单,不过缺点也比较明显:

  • 第一,不能够按照Web服务器的处理能力分配负载;

  • 第二,DNS负载均衡技术没有考虑容错,即使某个服务器不可用,DNS仍然会把请求转发过去;

  • 第三,一旦发现某个服务器出现故障,即使及时修改了DNS设置,但还是要等DNS刷新时间到了才能生效。

开源软件解决方案

后来出现了开源软件负载均衡的解决方案,最主流的就是LVS和Nginx。基于开源软件的负载均衡打破了硬件LB的垄断,降低了负载均衡的实施成本。

(1)LVS = Linux Virtual Server

LVS虚拟服务器,在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。

LVS是把负载均衡的功能做到了Linux内核里面。LVS集群采用IP负载均衡技术和基于内容请求分发技术,将一组服务器构成一个高性能的、高可用的虚拟服务器。

整个服务器集群的结构对客户是透明的,客户访问集群系统提供的网络服务就像访问一台高性能、高可用的服务器一样,而且无需修改客户端和服务器端的程序。

(2)Nginx

Nginx是一个轻量级的Web服务器,同时也是一个反向代理服务器,可以利用其反向代理的功能做负载均衡。Nginx与LVS相比主要有以下几点不同:

  • 与LVS在层四进行负载均衡不同,Nginx是在层7进行,可以针对Http应用进行分流;

  • 转发策略也更灵活,比如可以针对域名或目录结构进行转发;

  • Nginx对网络的依赖比较小,理论上只要Ping得通,网页访问正常就能连通,而LVS比较依赖网络环境。

总的来说,Nginx的应用场合要更多一些,LVS则更适合节点比较多的大型系统。

基于云的负载均衡(Cloud Load Balance)

除了在云主机上自己利用LVS或Nginx搭建负载均衡服务器,阿里云、腾讯云等云计算服务商,均提供了专门的负载均衡服务,配置容易。这些服务商的负载均衡解决方案,往往是结合了层7与层4的综合负载均衡方案,而且还需要考虑VPC网络与物理网络的不同情况(关于VPC的概念,可以参考之前的文章,《聊聊云计算:VPC与VPN有什么关系》)。具体实现方案比较复杂,这里就不过多介绍了,反正会用就行。

聊聊云计算:为什么构建网站时常会用到负载均衡

基于负载均衡实现的典型的云服务架构

上图就是一个基于负载均衡的典型的云服务架构。在我们搭建互联网应用时,可能需要考虑服务器的承载能力,或者需要保障服务器可用性,避免出现单点故障,使用负载均衡就是一个基本操作,掌握了LB,我们的服务就更加稳定了。

没有更多推荐了,返回首页