《可调节负荷资源分类算法》由会员分享,可在线阅读,更多相关《可调节负荷资源分类算法(9页珍藏版)》请在金锄头文库上搜索。
1、可调节负荷资源分类算法负载均衡可以根据网络协议的层数进行分类,我们这里以ISO 模型为准,从下到上分为:物理层,数据链路层,网络层,传输层,会话层,表示层,应 用层。当客户端发起请求,会经过层层的封装,发给服务器,服务器 收到请求后经过层层的解析,获取到对应的内容。接收端每通过一层则 删除首部iJu tJblL 友谨y而每通过一层则增加首部HTTP报文应用层传输层网络层镒銘层HTTP数据TCP报文段TCP首部HTTP数据|J IP数据包IP首部TCP首部HTTP数据|J剧络架构以太网首部IP首部TCP酋部HTTP数据 |HTTP数据 | ttcp首部HTTP数据 |IP首部TCP首部I HTT
2、P数据 以太网首部IP首部TCP首部HTTP数据 |l丨一测勅二层负债均衡是基于数据链路层的负债均衡,即让负债均衡服 务器和业务服务器绑定同一个虚拟IP (即VIP),客户端直接通过这 个VIP进行请求,那么如何区分相同IP下的不同机器呢?没错,通 过 MAC 物理地址,每台机器的 MAC 物理地址都不一样,当负载均衡 服务器接收到请求之后,通过改写HTTP报文中以太网首部的MAC地 址,按照某种算法将请求转发到目标机器上,实现负载均衡。这种方式负载方式虽然控制粒度比较粗,但是优点是负载均衡 服务器的压力会比较小,负载均衡服务器只负责请求的进入,不负 责请求的响应(响应是有后端业务服务器直接响
3、应给客户端),吞吐VIP: 203.1Bf M7.223I0量会比较高。Load Balancer(L日V1P: 203.195.147.223IP 内:10.0.8.170三层负载均衡是基于网络层的负载均衡,通俗的说就是按照不EP: 10.0,8.171IP: 10.0.B 172VIP: 203.195.147.223 VIP 203.195.147.223ServerIP: W.0.8J73SeFverlServer2同机器不同 IP 地址进行转发请求到不同的机器上。这种方式虽然比二层负载多了一层,但从控制的颗粒度上看, 并没有比二层负载均衡更有优势,并且,由于请求的进出都要经过负载均衡
4、服务器,会对其造成比较大的压力,性能也比二层负载均衡要差。四层负载均衡是基于传输层的负载均衡,传输层的代表协议就 是 TCP/UDP 协议,除了包含 IP 之外,还有区分了端口号,通俗的说 就是基于IP+端口号进行请求的转发。相对于上面两种,控制力度 缩小到了端口,可以针对同一机器上的不用服务进行负载。这一层 以 LVS 为代表。七层负载均衡是基于应用层的负载均衡,应用层的代表协议有 HTTP,DNS 等,可以根据请求的 url 进行转发负载,比起四层负 载,会更加的灵活,所控制到的粒度也是最细的,使得整个网络更 智能化。例如访问一个网站的用户流量,可以通过七层的方式,将 对图片类的请求转发到
5、特定的图片服务器并可以使用缓存技术;将 对文字类的请求可以转发到特定的文字服务器并可以使用压缩技 术。可以说功能是非常强大的负载。这一层以Nginx为代表。在普通的应用架构中,使用Nginx完全可以满足需求,对于一 些大型应用,一般会采用DNS+LVS+Nginx的方式进行多层次负债均 衡,以上这些说明都是基于软件层面的负载均衡,在一些超大型的 应用中,还会在前面多加一层物理负载均衡,比如知名的F5。负载均衡算法分为两类: 一种是静态负载均衡,一种是动态负载均衡。静态均衡算法:1、轮询法将请求按顺序轮流地分配到每个节点上,不关心每个节点实际 的连接数和当前的系统负载。优点:简单高效,易于水平扩
6、展,每个节点满足字面意义上的 均衡;缺点:没有考虑机器的性能问题,根据木桶最短木板理论,集 群性能瓶颈更多的会受性能差的服务器影响。厂岔34|56亍891/2、随机法将请求随机分配到各个节点。由概率统计理论得知,随着客户 端调用服务端的次数增多,其实际效果越来越接近于平均分配,也 就是轮询的结果。优缺点和轮询相似。3、源地址哈希法源地址哈希的思想是根据客户端的IP地址,通过哈希函数计算得到一个数值,用该数值对服务器节点数进行取模,得到的结果便 是要访问节点序号。采用源地址哈希法进行负载均衡,同一IP地址 的客户端,当后端服务器列表不变时,它每次都会落到到同一台服 务器进行访问。优点:相同的 I
7、P 每次落在同一个节点,可以人为干预客户端请 求方向,例如灰度发布;缺点:如果某个节点出现故障,会导致这个节点上的客户端无 法使用,无法保证高可用。当某一用户成为热点用户,那么会有巨 大的流量涌向这个节点,导致冷热分布不均衡,无法有效利用起集 群的性能。所以当热点事件出现时,一般会将源地址哈希法切换成 轮询法。6514329 543 2地址h日sh落点 HA HB HC HD4、加权轮询法不同的后端服务器可能机器的配置和当前系统的负载并不相 同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置 更高的权重,让其处理更多的请;而配置低、负载高的机器,给其 分配较低的权重,降低其系统负载,加
8、权轮询能很好地处理这一问 题,并将请求顺序且按照权重分配到后端。加权轮询算法要生成一个服务器序列,该序列中包含n个服务 器。n是所有服务器的权重之和。在该序列中,每个服务器的出现 的次数,等于其权重值。并且,生成的序列中,服务器的分布应该 尽可能的均匀。比如序列a,a,a,a,a,b,c中,前五个请求都会分配 给服务器a,这就是一种不均匀的分配方法,更好的序列应该是: a,a,b,a,c,a,a。优点:可以将不同机器的性能问题纳入到考量范围,集群性能 最优最大化;缺点:生产环境复杂多变,服务器抗压能力也无法精确估算, 静态算法导致无法实时动态调整节点权重,只能粗糙优化。5、加权随机法与加权轮询
9、法一样,加权随机法也根据后端机器的配置,系统 的负载分配不同的权重。不同的是,它是按照权重随机请求后端服 务器,而非顺序。6、键值范围法根据键的范围进行负债,比如0 到10万的用户请求走第一个节 点服务器,10 万到20 万的用户请求走第二个节点服务器以此 类推。优点:容易水平扩展,随着用户量增加,可以增加节点而不影 响旧数据;缺点:容易负债不均衡,比如新注册的用户活跃度高,旧用户 活跃度低,那么压力就全在新增的服务节点上,旧服务节点性能浪 费。而且也容易单点故障,无法满足高可用。6 54Llj23456789动态均衡算法:1、最小连接数法根据每个节点当前的连接情况,动态地选取其中当前积压连接
10、 数最少的一个节点处理当前请求,尽可能地提高后端服务的利用效 率,将请求合理地分流到每一台服务器。俗称闲的人不能闲着,大 家一起动起来。优点:动态,根据节点状况实时变化; 缺点:提高了复杂度,每次连接断开需要进行计数; 实现:将连接数的倒数当权重值。2、最快响应速度法根据请求的响应时间,来动态调整每个节点的权重,将响应速 度快的服务节点分配更多的请求,响应速度慢的服务节点分配更少 的请求,俗称能者多劳,扶贫救弱。优点:动态,实时变化,控制的粒度更细,跟灵敏;缺点:复杂度更高,每次需要计算请求的响应速度;实现:可以根据响应时间进行打分,计算权重。3、观察模式法观察者模式是综合了最小连接数和最快响应度,同时考量这两 个指标数,进行一个权重的分配。