首页 > 编程语言 > 详细

Spring Cloud:Ribbon基础知识

时间:2020-09-05 17:29:01      阅读:75      评论:0      收藏:0      [点我收藏+]

一.简介

Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。
简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。在配置文件中列出Load Balancer后面所有的机器,Ribbon会自动帮助你基于某种规则去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法。
Ribbon在工作时分成两步:第一步选择EurekaServer,他优先选择在同一个区域内负载较少的server。第二步再根据用户指定的策略,再从server取到的服务注册列表中选择一个地址。

二.Ribbon基本使用

依赖
在新版eureka-client依赖中,已经默认导入了Ribbon的相关依赖了。

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

技术分享图片
我们如果想要使用Ribbon,只需要在RestTemplate的配置类中加上@LoadBalanced注解即可。(默认使用的是轮询算法)然后进行服务调用,Ribbon就开始工作了。

@Configuration
public class ApplicationContextConfig {

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate(){
        return new RestTemplate();
    }
}

三.Ribbon的负载规则

Ribbon默认自带一下负载规则:

  • RoundRobinRule:轮询
  • RandomRule:随机
  • RetryRule:先按照RoundRobinRule的策略获取服务,如果获取服务失败则会在指定时间进行重试,获取可用的服务。
  • WeightedResponseTimeRule:对RoundRobinRule的扩展,相应速度越快的实列选择权重越大,越容易被选择。
  • BestAvailableRule:会优先过滤掉由于多次访问故障而处于断路器跳闸状态的服务,然后选择一个并发量最小的服务。
  • AvailablityFilterRule:会过滤掉故障实例,再选择并发较小的实例。
  • ZoneAvoidanceRule:默认规则,符合判断server所在区域的性能和server的可用性选择服务器。

四.替换Ribbon的负载规则

Spring Cloud:Ribbon基础知识

原文:https://www.cnblogs.com/wwjj4811/p/13617929.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!