Ribbon 学习笔记

此段笔记均摘自 翟永超 ——《springcloud微服务实战》,特此标出,以示尊敬。


一 Spring Cloud Ribbon  客户端负载均衡

1、 @LoadBalanced     开启客户端负载均衡
    沁bbon 的时候 Spring Cloud 默认采用ZoneAware-LoadBalancer

2、 Spring Cloud Ribbon 是一个基于 HTTP 和 TCP 的客户端负载均衡工具,它基于 NetflixRibbon 实现

3、客户端负载均衡和服务端负载均衡最大的不同点在千上面所提到的服务清单所存储
    的位置。 在客户端负载均衡中, 所有客户端节点都维护着自己要访问的服务端清单

4、负载均衡策略

    Random Rule  随机
    
    RoundRobinRule     线性轮询
    
    RetryRule    具备重试机制的实例选择
    
    WeightedResponseTimeRule    对 RoundRobinRule 的扩展, 增加了根据实例的运行情况来计算权重
    
    

    
二 RestTemplate

    最后一个参数didi 会替换 url 中的{1} 占位符, 而返回的 ResponseEntity对象中的 body 内容类型会根据第二个参数转换为 String 类型。
        Res七Template restTemplate = new RestTemplate(); 
        ResponseEntity<String> responseEntity = restTemplate.getForEntity("http://USER-SERVICE/user?name={1} ", String. class, "didi") ; 
        String body = responseEntity. getBody () ; 
    若我们希望返回的 body 是一个 User 对象类型,也可以这样实现:
        RestTemplate restTemplate = new RestTemplate(); 
        ResponseEntity<User> responseEntity = restTemplate.getForEntity("http://USER-SERVICE/user?name={l}", User.class, "didi"); 
        User body= responseEntity.getBody();
    
三、重试功能

    开启重试机制
    spring.cloud.loadbalancer.retry.enabled=true 
    
    断路器的超时时间需要大于Ribbon的超时时间, 不然不会触发重试
    hystrix.command.default.execution.isolation.thread.timeoutinMilliseconds=lOOOO 
    
    请求连接的超时时间
    hello-service.ribbon.ConnectTimeout=250 
    
    请求处理的超时时间
    hello-service.ribbon.ReadTimeout=lOOO 
    
    对所有操作请求都进行重试
    hello-service.ribbon.OkToRetryOnAllOperations=true 
    
    切换实例的重试次数
    hello-service.ribbon.MaxAutoRetriesNextServer=2
    
    对当前实例的重试次数
    hello-service.ribbon.MaxAutoRetries=l
    
    根据如上配置, 当访问到故障请求的时候, 它会再尝试访问 一次当前实例(次数由
    MaxAutoRetries配置), 如果不行, 就换 一个实例进行访问, 如果还是不行, 再换 一次
    实例访问(更换次数由MaxAutoRe红iesNextServer配置), 如果依然不行, 返回失败
    信息。
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值