微服务服务治理之负载均衡实践:使用 Ribbon 和 Feign 实现负载均衡详解
Ribbon 负载均衡
Ribbon 与 Nginx 的区别
客户端负载均衡 Ribbbon:
Ribbon 是从 Eureka 注册中心服务器上获取注册信息列表,缓存到本地, 然后在本地实现轮询负载均衡策略.即在客户端实现负载均衡.
服务端负载均衡 Nginx:
Ngnix 是客户端所有请求统一交给 Nginx,由 Nginx 实现负载均衡请求转发,属于服务器端负载均衡.即请求由 Nginx 服务器端进行转发.
应用场景的区别:
Nginx 适用服务器端实现负载均衡:Tomcat,Jetty
Ribbon 适用于在微服务中 RPC 远程调用实现本地负载均衡:Dubbo,SpringCloud
Ribbon 负载均衡的底层实现
Ribbon 负载均衡:
客户端从 Eureka 注册中心获取对应的注册信息列表,获取到注册信息列表后,缓存到本地,然后在本地实现负载均衡.即负载均衡是由客户端实现的.
负载均衡算法:
接口的总请求数取模服务器数得到实际的服务器下标(从 0 开始)获取到服务器调用服务
实现:
获取对应服务器的远程调用地址:DiscoveryClient
复制代码
使用 rest 方式发送请求使用远程调用
复制代码
Feign
SpringCloud 中支持两种客户端调用工具:
Rest(RestTemplate 模板)
Feign
Feign 是声明式 Http 客户端调用工具,采用接口+注解方式实现,易读性强.
复制代码
复制代码
Feign 客户端超时时间设置
复制代码
版权声明: 本文为 InfoQ 作者【攻城狮Chova】的原创文章。
原文链接:【http://xie.infoq.cn/article/ac4844a6af895a29fa343ba13】。文章转载请联系作者。
评论