Ribbon
负载均衡,旨在将请求分发。
客户端负载均衡
负载均衡算法在客户端执行
eg:当a服务调用b服务时,在调用前已经从注册中心获取到了b服务的实例信息(服务地址列表)。使用ribbon采取指定的负载均衡算法选择一个进行请求。
服务端负载均衡
负载均衡算法在服务端执行
eg: Nginx、 F5这些,请求到达服务器之后由这些负载均衡器根据⼀定的算法将请求路由到⽬标服务器处理。
负载均衡策略
Ribbon内置了多种负载均衡策略,内部负责复杂均衡的顶级接⼝为 com.netflix.loadbalancer.IRule
ZoneAvoidanceRule
区域权衡策略(默认策略)
可通过配置文件修改负载均衡策略:
lagou-service-resume:
ribbon:
NFLoadBalancerRuleClassName:
com.netflix.loadbalancer.RandomRule #负载策略调整为轮询
工作原理
Ribbon在服务提供者发送请求时,实现拦截器,获取实例列表,应以指定的负载均衡算法选出一个server,通过restTemplatek进行访问