vlambda博客
学习文章列表

服务端负载均衡和客户端负载均衡的区别

1、什么是负载均衡?

负载均衡可以想象为将所有请求先聚在一起,然后根据负载均衡算法分发请求达到合理分配请求,将服务器处理请求的效率达到最大化,为微服务集群分担请求,降低系统的压力。。

负载均衡算法:

我们平时说负载均衡一般都是指服务端负载均衡,但因为分布式spring cloud分布式框架出现,也出现了客户端负载均衡这一概念,那么两者的区别是什么呢?

2、服务端负载均衡

1)、服务端负载均衡分两种:

一种是硬件负载均衡,硬件比如:F5、Array等

另一种是软件负载均衡,软件比如:LVS、Nginx等

2)、具体流程:

客户端发送请求被服务端负载均衡拦截,根据负载均衡算法分发请求到具体服务器上处理请求。

3)、特点:

3、客户端负载均衡


1)、具体流程:

1、客户端负载均衡Ribbon从注册中心Eureka Server中获取服务列表

2、客户端负载均衡Ribbon根据负载均衡算法分发请求

客户端负载均衡Ribbon在分布式系统的位置


其实客户端负载均衡Ribbon的配置就处于微服务的消费者中,消费者通过restTemplate远程调用
触发Ribbon的负载均衡

2)、特点:

在客户端负载均衡中,客户端可以知道所有服务端的详细信息,当需要调用 Server上的接口时,客户端从自身已知的Server列表中,根据提前配置的负载均衡策略,自己挑选一个服务端来调用,此时客户端知道自己调用的是哪一个 Server

服务端负载均衡和客户端负载均衡的区别

服务端负载均衡的流程:客户端——>负载均衡服务器——>服务器

客户端负载均衡:客户端——>服务器

所以我们可以看出服务端负载均衡是通过一台服务器达到负载均衡的,
而客户端负载均衡通过自己就能达到负载均衡(它先从注册中心获取服务列表),并不需要其他服务器。