Java面试题总结13之spring cloud负载均衡算法,类型

1、轮询法

将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。

2、随机法

通过系统的随机算法,根据后端服务器的列表大小值来随机选取其中的一台服务器进行访问。由概率统计理论可以得知,随着客户端调用服务端的次数增多,

其实际效果越来越接近于平均分配调用量到后端的每一台服务器,也就是轮询的结果。

3、源地址哈希法

源地址哈希的思想是根据获取客户端的IP地址,通过哈希函数计算得到的一个数值,用该数值对服务器列表的大小进行取模运算,得到的结果便是客服端要访问服务器的序号。采用源地址哈希法进行负载均衡,同一IP地址的客户端,当后端服务器列表不变时,它每次都会映射到同一台后端服务器进行访问。

4、加权轮询法

不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请;而配置低、负载高的机器,给其分配较低的权重,降低其系统负载,加权轮询能很好地处理这一问题,并将请求顺序且按照权重分配到后端。

5、加权随机法

与加权轮询法一样,加权随机法也根据后端机器的配置,系统的负载分配不同的权重。不同的是,它是按照权重随机请求后端服务器,而非顺序。

6、最小连接数法

最小连接数算法比较灵活和智能,由于后端服务器的配置不尽相同,对于请求的处理有快有慢,它是根据后端服务器当前的连接情况,动态地选取其中当前

积压连接数最少的一台服务器来处理当前的请求,尽可能地提高后端服务的利用效率,将负责合理地分流到每一台服务器。

类型

DNS方式实现负载均衡

硬件负载均衡:F5 和A10

软件负载均衡:Nginx 、HAproxy、LVS

Nginx:七层负载均衡(应用层,根据不同的URL制定不同的规则,不同的URL路由到不同的server层,跟客户端或者服务端维护一个长连接),支持HTTP,E-mail协议,同时也支持四层负载均衡(传输层)。

HAproxy:支持七层规则,OpenStack默认使用的负载均衡软件。

LVS:运行在内核态(四层,传输层,负责转发),性能是软件负载均衡中最高的,严格来说工作在三层,所以也更通用,适用于各种应用服务。

相关推荐
heart000_18 分钟前
基于SpringBoot的智能问诊系统设计与隐私保护策略
java·spring boot·后端
汐泽学园10 分钟前
基于ASP.NET校园二手交易网站设计与实现
后端·asp.net
半聋半瞎15 分钟前
【进程和线程】(面试高频考点)
java·jvm·面试
功德+n27 分钟前
在 Maven 中使用 <scope> 元素:全面指南
java·maven
Java_young37 分钟前
(十七) Nginx解析:架构设计、负载均衡实战与常见面试问题
nginx·面试·负载均衡
失业写写八股文1 小时前
Java类加载阶段深度解析:三步走全流程详解
java
yyueshen1 小时前
单例模式,有必要用volatile么?
java·单例模式·设计模式
一条闲鱼_mytube1 小时前
[Kubernetes] 7控制平面组件
java·平面·kubernetes
MZWeiei1 小时前
Scala:case class(通俗易懂版)
开发语言·后端·scala