负载均衡器的优点和实现方法
负载均衡器是一种采用各种分配算法把网络请求分散到一个服务器集群中的可用服务器上去,通过管理进入的Web数据流量和增加有效的网络带宽,从而使网络访问者获得尽可能最佳的联网体验的硬件设备。
负载均衡器有多种多样的形式,除了作为独立意义上的负载均衡器外,
有些负载均衡器集成在交换设备中,置于服务器与Internet链接之间,有些则以两块网络适配器将这一功能集成到PC中,一块连接到Internet上,一块连接到后端服务器群的内部网络上。
一般而言,硬件负载均衡在功能、性能上优于软件方式,不过成本昂贵。当Web服务器为图像服务、SSL(安全套接层)会话或数据库事务而进行优化时,负载均衡器可以体现特别的价值。
采用负载均衡器的优点
原有的系统只部署了一台服务器,随着访问量的增加,一台服务器已经不能满足应用的需要,而需要增加更多的服务器。当部署了两台以上的服务器时,就可能会需要用到负载均衡器。通过服务器负均衡器,对流量进行合理分配,可以带来以下好处:
提高性能--负载均衡器可以实现服务器之间的负载平衡,从而提高了系统的反应速度与总体性能;
提高可靠性--负载均衡器可以对服务器的运行状况进行监控,及时发现运行异常的服务器,并将访问请求转移到其它可以正常工作的服务器上,从而提高服务器组的可靠性
提高可维护性--采用了负均衡器器以后,可以根据业务量的发展情况灵活增加服务器,系统的扩展能力得到提高,同时简化了管理。
服务器负载均衡的实现方法
实现服务器负载均衡有多种方法,常见的方法有:
基于DNS轮询的方法:即在DNS服务器中对同一域名设置多条DNS A记录,通过DNS的轮询机制实现服务器负载均衡。
大多域名注册商都支持多条A记录的解析,其实这就是DNS轮询,DNS服务器将解请求按照A记录的顺序,逐一分配到不同的IP上,这样就完成了简单的负载均衡。健康检查,如果某台服务器宕机,DNS服务器是无法知晓的,仍旧会将访问分配到此服务器。修改DNS记录全部生效起码要3-4小时,甚至更久;分配不均,如果几台Web服务器之间的配置不同,能够承受的压力也就不同,但是DNS解析分配的访问却是均匀分配的。其实DNS也是有分配算法的,可以根据当前连接较少的分配、可以设置Rate权重分配等等,只是目前绝大多数的DNS服务器都不支持; 会话保持,如果是需要身份验证的网站,在不修改软件构架的情况下,这点是比较致命的,因为DNS解析无法将验证用户的访问持久分配到同一服务器。虽然有一定的本地DNS缓存,但是很难保证在用户访问期间,本地DNS不过期,而重新查询服务器并指向新的服务器,那么原服务器保存的用户信息是无法被带到新服务器的,而且可能要求被重新认证身份,来回切换时间长了各台服务器都保存有用户不同的信息,对服务器资源也是一种浪费。
基于应用软件的实现方法,在应用软件设计中就考虑了多服务器之间的协同工作与任务调度。
这种方法一般会有一台服务器作为中枢对访问请求进行调度,同时要求在应用层支持访问重定向或任务调度、跳转机制。
采用专门的L4/L7层交换机来实现,也即我们常说的负载均衡器。一般都是通过在L4/L7层交换机作地址转换(NAT)来实现。
七层上做负载均衡大多基于硬件
七层上做负载均衡 (转载)
很多大公司在七层上做负载均衡大多基于硬件,比如F5,假如流量真的大到不行了,或者是钱多的烧包,那么买一个这种设备肯定是不二的选择,省去多少事情啊,不用搭建环境,不用搞很多测试,只要照着说明文档或者去厂方培训几天就可以了。
七层设备出了F5还有很多,在七层上做负载均衡的软件业很多,比如大名鼎鼎的HaProxy,比如配上第三方工具的LVS,甚至因为负载均衡的重要性,很多具有前瞻性的Web服务器开始提供这样的功能,比如nginx,比如light httpd,nginx的七层负载均衡实际上还是很不完善的,
当后端代理一台机器死掉后,nginx还会发送请求给这个机器,这个机器不处理,那么nginx就会一直等待超时,在超时后再将请求分配给其他的机器,在流量大时会很影响性能,造成一定程度的连接堆积甚至堵塞,nginx的负载均衡算法也相对少很多,没有haproxy和LVS多,当然后者是专业负载均衡软件。
静态文件缓存也有很多,比如不朽的squid,比如最近两年很火的varnish,甚至号称比squid更快速更精准的nginx的模块ncache,varnish使用的Visual Page Cache技术能够显著降低内存和磁盘的交换次数,使系统利用率更高,我没有在百万级以上环境检测过varnish,很多人说varnish不是足够的稳定,我测试的时候没有发生什么问题。
静态文件缓存一般都不止一台,我一直推崇使用七层负载均衡来设计静态缓存架构,因为可以降低重复率,降低重复率自然是提高利用率。URL HASH能够很好的解决缓存浪费的情况,比如用户头像放在一台机器上,模板中的小文件放在另外一台机器上,利用七层负载均衡就很容易让头像的请求命中头像服务器,模板请求命中模板缓存服务器,避免了三层或者四层负载均衡重复缓存导致的硬件利用率低下问题。而且服务单一,新切换的缓存机器,很容易重新缓存满。
七层负载均衡和四层负载均衡相比,最大的缺点就是没有四层的负载能力高,Haproxy据说能跑到40万并发,LVS有几百万。
分享到:
相关推荐
nginx关于负载均衡的详细资料
深信服AD双机部署指导是深信服公司发布的一份关于负载均衡双机部署的指导文档。该文档适用于深信服AD7.0.5及以后版本,旨在帮助用户正确地部署深信服负载均衡系统。下面是该文档中涉及的重要知识点: 一、功能模块...
在实际应用中,应该忽略这些无关的内容,关注文档中关于负载均衡技术的专业讨论和分析。 根据描述部分提及的标签“负载均衡 性能优化”,可以断定本文档重点介绍了负载均衡技术在网站性能优化中的应用,这些内容...
云计算负载均衡是指在云计算环境下,...随着云计算技术的不断进步和市场应用需求的日益增长,关于负载均衡的标准化工作也将持续深化,以满足云计算服务提供商和用户之间日益增长的需求,促进整个云计算产业的健康发展。
"负载均衡SLB不得不知事情" 负载均衡SLB是云计算领域中的一种技术,能够将流量分配到多个服务器上,以提高应用程序的可用性和性能。在本文中,我们将详细介绍SLB不得不知的事情,包括SLB的收费模式、实例释放、VIP...
11 关于负载均衡下面说法错误的是( ) 单个重负载的运算分担到多台节点设备上做并行处理,每个节点设备处理结束后,将结果汇总,返回给用户,系统处理能力得到大幅度提高 大量的并发访问或数据流量分担到多台节点...
目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡、本地/全局负载均衡、更高网络层负载均衡,以及链路聚合技术。 我们使用的是软负载均衡器Nginx,而农行用的是F5硬负载均衡器,这里...
在无线Mesh网络领域,已经有不少关于负载均衡问题的研究工作。其中,一些研究者利用线性规划公式描述Mesh网络的路由问题,并提出了负载均衡路由算法。这些算法基于业务流跳数的约束,通过减少链路负载来提高网络吞吐...
Camstar负载均衡配置.docx"显然是关于如何在Camstar系统中实现多服务器与同数据库的负载均衡配置的详细指南。Camstar是一个知名的制造执行系统(MES),它提供了全面的生产管理和自动化解决方案,尤其适用于半导体、...
以下是关于负载均衡算法的详细解释: 1. **轮循均衡**(Round Robin)是最基础的负载均衡算法,每次新请求都会被分配给服务器列表中的下一个服务器,形成循环。这种方法适合服务器性能相当且处理请求均匀的情况。 ...
阿里云专有云Enterprise版负载均衡V3.1.0运维指南是阿里云提供的一份关于负载均衡的运维指南,旨在帮助用户正确地使用和维护阿里云的负载均衡产品。该指南涵盖了负载均衡的概述、产品特点、配置指南、故障排除指南等...
负载均衡技术在当前网络业务迅猛增加和升级硬件设施之间矛盾的一个有效措施,本文简单描述了关于负载均衡方面的研究现状,重点介绍了现今 Linux bonding 技术及其基于 bonding 技术的几种负载均衡的算法,并对此进行...
关于一台三层交换机做双链路负载均衡的解决方案 在讨论中,提出了使用一台三层交换机来实现双链路负载均衡的问题。该问题的主要目的是为了解决局域网内两个网段的用户可以同时通过两条Internet线路上网,并且在一条...
阿里云的负载均衡服务是一种分布式服务,用于在多台服务器之间分发网络流量,提高应用的可用性和响应速度。此文档列举了一些常见的问题和限制,主要集中在产品功能、配置选项和资源配额等方面。 1. **创建负载均衡...
在IT领域,Windows Server 2008操作系统提供了一种强大的功能——负载均衡,它能够有效地提高服务器的可用性和性能,确保企业的关键业务系统能够稳定、高效地运行。负载均衡通过将网络流量分发到多台服务器上,避免...
以下是关于负载均衡实现Web服务器集群的详细讨论。 1. **背景与需求**: - 当Web服务器面临大量并发访问时,单台服务器可能无法处理所有请求,导致响应时间延长,用户体验下降。 - 负载均衡通过将请求分发到多台...
阿里云专有云企业版负载均衡SLB开发指南是阿里云提供的一份关于负载均衡开发的指南,旨在帮助用户快速了解和使用阿里云的负载均衡服务。本文档涵盖了负载均衡的基本概念、架构设计、页面布局、文字描述等方面的知识...
在这份文件中,关于如何使用一台三层交换机实现双链路负载均衡的内容,主要涉及到以下几个关键技术点: 1. **VLAN(Virtual Local Area Network,虚拟局域网)** VLAN是一种将一个物理网络分割成多个逻辑子网的...