Spring Cloud Ribbon配置详解

概述

有时候需要自定义Ribbon的配置和客户端超时配置。

自动化配置

/* 使用属性自定义功能区客户端 从版本1.2.0开始,Spring Cloud Netflix现在支持使用属性与Ribbon文档兼容来自定义功能区客户端。即从Camden版本之后,新增了org.springframework.cloud.netflix.ribbon.PropertiesFactory类动态的为RibbonClient创建这些接口的实现

    public PropertiesFactory() {
classToProperty.put(ILoadBalancer.class, "NFLoadBalancerClassName");
classToProperty.put(IPing.class, "NFLoadBalancerPingClassName");
classToProperty.put(IRule.class, "NFLoadBalancerRuleClassName");
classToProperty.put(ServerList.class, "NIWSServerListClassName");
classToProperty.put(ServerListFilter.class, "NIWSServerListFilterClassName");
}

 


#服务名
<client-name>:
ribbon:
   #配置Ribbon负载均衡规则:IRule
  NFLoadBalancerRuleClassName: com.ley.springcloud.client.rule.MyRoundRobinRule
   #配置Ribbon实例检查策略:IPing
  NFLoadBalancerPingClassName:
   #配置负载均衡器:ILoadBalancer
  NFLoadBalancerClassName:
   #配置服务实例清单维护机制:ServerList
  NIWSServerListClassName:
   #配置服务清单过滤机制:ServerListFilter
  NIWSServerListFilterClassName:
参数配置

对于Ribbon参数配置通常有两种方式:全局配置以及客户端配置

全局配置:ribbon.<key>=<value>

指定客户端配置:<client>.ribbon.<key>=<value>格式进行配置,client可以理解为服务名

**对于Ribbon参数的key以及value类型定义,可以查看com.netflix.client.config.CommonClientConfigKey类获取更为详细的配置内容

没有服务治理框架的帮助,需要为该客户端指定具体的实例清单,指定具体的服务名来做详细的配置

<service-name>.ribbon.listOfServers=localhost:8001,localhost:8002,localhost:8003

与Eureka结合

1:变化

2:禁用Eureka对Ribbon服务实例的维护实现


ribbon.eureka.enabled=false
Ribbon重试机制

从Camden SR2版本开始,Spring Cloud整合Spring Retry来增强RestTemplate的重试能力。通过RestTemplate实现的服务访问就会自动根据配置来实现重试机制

配置示例


spring:
cloud:
  loadbalancer:
    retry:
      enabled: true #开启重试机制
#ribbon配置,key-value配置类:CommonClientConfigKey
#need add spring retry
#服务名
eureka-provider:
ribbon:
  ConnectTimeout: 250 #单位ms,请求连接超时时间
  ReadTimeout: 1000 #单位ms,请求处理的超时时间
  OkToRetryOnAllOperations: true #对所有操作请求都进行重试
  MaxAutoRetriesNextServer: 2 #切换实例的重试次数
  MaxAutoRetries: 1 #对当前实例的重试次数

POM添加·

        <!--spring retry(let ribbon retry) need add spring boot aop starter-->
       <dependency>
           <groupId>org.springframework.retry</groupId>
           <artifactId>spring-retry</artifactId>
       </dependency>

       <!--spring boot starter aop-->
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-aop</artifactId>
       </dependency>

启动类加上@EnableRetry注解。

 

 

 

转载于:https://www.cnblogs.com/liuenyuan1996/p/10288570.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值