还剩4页未读,继续阅读
文本内容:
-什么是负载均衡早期的互联网应用,由于用户流量比较小,业务规律也比较简洁,往往一个单服务器就能满足负载需求随着现在互联网的流量越来越大,略微好一点的系统,访问量就非常大了,并且系统功能也越来越简单,那么单台服务器就算将性能优化得再好,也不能支撑这么大用户量的访问压力了,这个时候就需要使用多台机器,设计高性能的集群来应对那么,多台服务器是如何去均衡流量、如何组成高性能的集群的呢?此时就需要请出「负载均衡器」入场了负载均衡LoadBalancer是指把用户访问的流量,通过「负载均衡器」,依据某种转发的策略,匀称的分发到后端多台服务器上,后端的服务器可以独立的响应和处理恳求,从而实现分散负载的效果负载均衡技术提高了系统的服务能力,增加了应用的可用性二负载均衡旗有丽目前市面上最常见的负载均衡技术方案主要有三种基于DNS负载均衡、基于硬件负载均衡、基于软件负载均衡三种方案各有优劣,DNS负载均衡可以实现在地域上的流量均衡,硬件负载均衡主要用于大型服务器集群中的负载需求,而软件负载均衡大多是基于机器层面的流量均衡在实际场景中,这三种是可以组合在一起使用下面来具体讲讲.基于DNS负载均衡基于DNS来做负载均衡其实是一种最简洁的实现方案,通过在DNS服务器上做一个简洁配置即可其原理就是当用户访问域名的时候,会先向DNS服务器去解析域名对应的IP地址,这个时候我们可以让DNS服务器依据不同地理位置的用户返回不同的IP比如南方的用户就返回我们在广州业务服务器的IP北方的用户来访问的话,我就返回北京业务服务器所在的IP在这个模式下,用户就相当于实现了依据「就近原则」将恳求分流了既减轻了单个集群的负载压力,也提升了用户的访问速度使用DNS做负载均衡的方案,自然的优势就是配置简洁,实现成本非常低,无需额外的开发和维护工作但是也有一个明显的缺点是当配置修改后,生效不准时这个是由于DNS的特性导致的,DNS-般会有多级缓存,所以当我们修改了DNS配置之后,由于缓存的缘由会导致IP变更不准时,从而影响负载均衡的效果此外,使用DNS做负载均衡的话,大多是基于地域或者干脆直接做IP轮询,没有更高级的路由策略,所以这也是DNS方案的局限所在.基于硬件负载均衡硬件的负载均衡那就比较牛逼了,比如大名鼎鼎的F5NetworkBig-IP也就是我们常说的F5它是一个网络设施,你可以简洁的理解成类似于网络交换机的东西,完全通过硬件来抗压力,性能是非常的好,每秒能处理的恳求数达到百万级,即几百万/秒的负载,当然价格也就非常非常贵了,十几万到上百万人民币都有由于这类设施一般用在大型互联网公司的流量入口最前端,以及政府、国企等不缺钱企业会去使用一般的中小公司是不舍得用的采用F5这类硬件做负载均衡的话,主要就是省心省事,买一台就搞定性能强大,一般的业务不在话下而且在负载均衡的算法方面还支持许多敏捷的策略,同时还具有一些防火墙等平安功能但是缺点也很明显,一个字贵.基于软件负载均衡软件负载均衡是指使用软件的方式来分发和均衡流量软件负载均衡,分为7层合同和4层合同网络合同有七层,基于第四层传输层来做流量分发的方案称为4层负载均衡,例如LVS而基于第七层应用层来做流量分发的称为7层负载均衡,例如Nginxo这两种在性能和敏捷性上是有些区分的基于4层的负载均衡性能要高一些,一般能达到几十万/秒的处理量,而基于7层的负载均衡处理量一般只在几万/秒基于软件的负载均衡的特点也很明显,廉价在正常的服务器上部署即可,无需额外选购,就是投入一点技术去优化优化即可,因此这种方式是互联网公司中用得最多的一种方式
三、常胭均衡算法有哪些上面讲完了常见的负载均衡技术方案,那么接下来咱们看一下,在实际方案应用中,一般可以使用哪些均衡算法?下面来分别介绍一下这几种均衡算法/策略的特点.轮询策略轮询策略其实很好理解,就是当用户恳求来了之后,「负载均衡器」将恳求轮番的转发到后端不同的业务服务器上这个策略在DNS方案中用的比较多,无需关注后端服务的状态,只药有恳求,就往后端轮番转发,非常的简洁、实用在实际应用中,轮询也会有多种方式,有按挨次轮询的、有随机轮询的、还有依据权重来轮询的前两种比较好理解,第三种依据权重来轮询,是指给每台后端服务设定一个权重值,比如性能高的服务器权重高一些,性能低的服务器给的权重低一些,这样设置的话,安排流量的时候,给权重高的更多流量,可以充分的发挥出后端机器的性能.负载度策略负载度策略是指当「负载均衡器」往后端转发流量的时候,会先去评估后端每台服务器的负载压力状况,对于压力比较大的后端服务器转发的恳求就少一些,对于压力比较小的后端服务器可以多转发一些恳求给它这种方式就充分的结合了后端服务器的运行状态,来动态的安排流量了,比轮询的方式更为科学一些但是这种方式也带来了一些弊端,由于需要动态的评估后端服务器的负载压力,那这个「负载均衡器」除了转发恳求以外,还要做许多额外的工作,比如采集连接数、恳求数、CPU负载指标、10负载指标等等,通过对这些指标进行计算和对比,推断出哪一台后端服务器的负载压力较大因此这种方式带来了效果优势的同时,也增加了「负载均衡器」的实现难度和维护成本.响应策略响应策略是指,当用户恳求过来的时候,「负载均衡器」会优先将恳求转发给当前时刻响应最快的后端服务器也就是说,不管后端服务器负载高不高,也不管配置如何,只要觉得这个服务器在当前时刻能最快的响应用户的恳求,那么就优先把恳求转发给它,这样的话,对于用户而言,体验也最好那「负载均衡器」是怎么知道哪一台后端服务在当前时刻响应能力最佳呢?这就需要「负载均衡器」不停的去统计每一台后端服务器对恳求的处理速度了,比如一分钟统计一次,生成一个后端服务器处理速度的排行榜然后「负载均衡器」依据这个排行榜去转发服务那么这里的问题就是统计的成本了,不停的做这些统计运算本身也会消耗一些性能,同时也会增加「负载均衡器」的实现难度和维护成本.哈希策略Hash策略也比较好理解,就是将恳求中的某个信息进行hash计算,然后依据后端服务器台数取模,得到一个值,算出相同值的恳求就被转发到同一台后端服务器中常见的用法是对用户的IP或者ID进行这个策略,然后「负载均衡器」就能保证同一个IP来源或者同一个用户永久会被送到同一个后端服务器上了,一般用于处理缓存、会话等功能的时候特殊好用。
个人认证
优秀文档
获得点赞 0