负载均衡

一、负载均衡

负载均衡分两个,一个是前端,一个是数据中心内部。

前端一般希望做到最小化用户请求延迟,通常就是用CDN。尽量选择最近的节点,选择最优的机房。

 

数据中心:

 

负载均衡_第1张图片

先看下这张图,左边的图最忙和最不忙的CUP相差还是挺大的,这样就是不好的负载均衡,右边的就是比较好的负载均衡。

一般的负载均衡策略如下:轮询、随机、加权、hash

但是这样会有问题

第一个问题,对于每一个qps,实际上就是每一个query、查询、API请求,它们的成本是不同的。节点与节点之间差异非常大,即便你做了均衡的流量分发,但是从负载的角度来看,实际上还是不均匀的。

第二个问题,存在物理机环境上的差异。因为我们通常都是分年采购服务器,新买的服务器通常主频CPU会更强一些,所以服务器本质上很难做到强同质。

 

    1.选择:CPU,client:health、inflight、latency作为指标,使用一个简单的线性方程进行打分;
    2.对新启动的节点使用常量惩罚值(penalty),以及使用探针方式最小化放量,进行预热;
    3.打分比较低的节点,避免进入“永久黑名单”而无法恢复,使用统计衰减的方式,让节点指标逐渐恢复到初始状态(即默认值)。

这样和传统的负载均衡相比更加智能,减少了人工调节。

 

你可能感兴趣的:(杂项)