Spring cloud Loadbalance

feign原理介绍
https://segmentfault.com/a/1190000016776471?utm_source=tag-newest

http://techblog.ppdai.com/2018/05/28/20180528/

https://blog.csdn.net/xiaofeng10330111/article/details/85682513

负载均衡策略

随机 (Random)
随机策略很简单,就是从服务器中随机选择一个服务器

轮询 (RoundRobin)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除

加权轮询(Weighted Round Robin)
加权本质是一种带优先级的方式,加权轮询就是一种改进的轮询算法,轮询算法是权值相同的加权轮询。需要给后端每个服务器设置不同的权值,决定分配的请求数比例。
这个算法应用就相当广泛了,对于无状态的负载场景,非常适合。
优点解决了服务器性能不一的情况,缺点是权值需要静态配置,无法自动调节。也不适合对长连接和命中率有要求的场景。

一致性哈希 (ConsistentHash)
介绍
一致性哈希算法(Consistent Hashing)在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题。

哈希 (Hash)
哈希算法( hash): 将客户端的源地址,端口进行哈希运算,根据运算的结果转发给一台服务器进行处理,当其中某个服务器发生故障,就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。

最小连接数LC
最小连接数(Least Connection),把请求分配给活动连接数最小的后端服务器。它通过活动来估计服务器的负载。比较智能,但需要维护后端服务器的连接列表。

加权最小连接数WLC
加权最小连接数(Weighted Least Connection),在后端服务器性能差异较大的情况下,可以优化LC的性能,高权值的服务可以承受更多的连接负载。

最短响应时间LRT
最短响应时间(Least Response Time),把请求分配给平均响应时间最短的后端服务器。平均响应时间可以通过ping探测请求或者正常请求响应时间获取。
RT(Response Time)是衡量服务器负载的一个非常重要的指标。对于响应很慢的服务器,说明其负载一般很高了,应该降低它的QPS。

之前有人说使用CPU占用率作为负载均衡的指标,只能说没理解CPU占用率的实质。理论上CPU占用率是越高越好,说明服务充分利用了CPU资源。但对于设计不合理的程序导致的CPU占用过高这是程序的设计问题,并不违背这条理论。

猜你喜欢

转载自blog.csdn.net/zhaohong_bo/article/details/89974518
今日推荐