浅谈大型网站之负载均衡架构
概念
负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
分类
一般有以下3种类型的负载均衡架构
1、链路负载均衡
链路负载均衡就是一般讲的DNS轮循负载均衡,负载均衡是由DNS动态解析成不同的IP完成的,在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。
DNS负载均衡虽然是一种简单而有效的方法,但是它不能区分服务器的差异,也不能反映服务器的当前运行状态,如果某一台服务器挂掉了,即这个域名不能被访问,整个网站也就瘫痪了,后果是可想而知的。
2、集群负载均衡
集群负载均衡是目前比较广泛使用的负载均衡方式,主要分为硬件层和软件层的负载均衡。
硬件负载均衡就是像F5这样的负载均衡设备,通过负载均衡硬件设备来分发用户的请求。硬件负载均衡性能特别好,但同时价格也非常昂贵,一般小公司用不起的,还有硬件负载均衡也不能动态扩容,当然这不够成问题。
软件负载均衡就是现在使用最多较为普遍的一种负载均衡方式,主要就是软件成本相对硬件来说成本比较低,直接购买普通的服务器就能搭建软件负载均衡,但如果软件负载均衡需要经过的代理服务器比较多也会带来网络延迟等问题。常见的软件负载均衡包括工作在TCP第四层的LVS,即在网络层进行IP地址分发,然后还有工作在TCP第7层的HaProxy、Nginx等根据用户访问信息(如:域名、Cookie等信息)分发到不同的服务器。
3、操作系统负载均衡
操作系统负载均衡就是通过利用操作系统级别的软中断和硬中断来达到负载均衡,比如可以设置多队列的网卡来实现等,这种负载均衡一般不会用到。
这几种负载均衡方式在CDN、分布式WEB服务、分布式数据集群中都能用到。
近期热文推荐:
1.Java 15 正式发布, 14 个新特性,刷新你的认知!!
2.终于靠开源项目弄到 IntelliJ IDEA 激活码了,真香!
3.我用 Java 8 写了一段逻辑,同事直呼看不懂,你试试看。。
觉得不错,别忘了随手点赞+转发哦!