美文网首页
SpringCloud(三)负载均衡

SpringCloud(三)负载均衡

作者: 冰三尺 | 来源:发表于2019-04-21 15:00 被阅读0次

客户端负载均衡器

在SpringCloud中, 无论是使用eureka作为注册中心, 还是使用zookeeper作为注册中心, 其负载均衡的实现都是基于本地来实现的.

在SpringCloud中使用Ribbon来实现负载均衡,其本质是会从eureka注册中心服务器端上获取服务注册信息列表,缓存到本地。接下来拦截请求, 再去根据负载均衡策略去实现调用具体的哪个服务. 策略, 可以是轮训, 可以是权重等等.

核心代码

private DiscoveryClient discoveryClient;
List<ServiceInstance> instances = discoveryClient.getInstances("服务名称");

DiscoveryClient会获取所有注册在eureka上的所有服务, 当获取到所有被注册的服务, 客户端便可以决定去访问哪一个服务.
假如有两台服务, 第一次请求到来我们访问第一个服务, 第二个请求到来, 访问第二个服务, 第三个请求服务到来, 再请求第一台服务, 取模运算, 以此类推


Ribbon与Nginx区别
服务器端负载均衡Nginx
nginx是客户端所有请求统一交给nginx,由nginx进行实现负载均衡请求转发,属于服务器端负载均衡。
既请求有nginx服务器端进行转发。
客户端负载均衡Ribbon
Ribbon是从eureka注册中心服务器端上获取服务注册信息列表,缓存到本地,让后在本地实现轮训负载均衡策略。
既在客户端实现负载均衡。

应用场景的区别:
Nginx适合于服务器端实现负载均衡 比如Tomcat ,Ribbon适合与在微服务中RPC远程调用实现本地服务负载均衡,比如Dubbo、SpringCloud中都是采用本地负载均衡。

相关文章

网友评论

      本文标题:SpringCloud(三)负载均衡

      本文链接:https://www.haomeiwen.com/subject/nbodgqtx.html