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注解。
Spring Cloud Ribbon配置详解的更多相关文章
- 笔记:Spring Cloud Ribbon RestTemplate 详解
详细介绍RestTemplate 针对几种不同请求类型和参数类型的服务调用实现,示例代码中的 restTemplate 都是通过Spring 注入方式创建的,相关代码如下: @Autowired pr ...
- Spring Cloud限流详解
转自:https://blog.csdn.net/tracy38/article/details/78685707 在高并发的应用中,限流往往是一个绕不开的话题.本文详细探讨在Spring Cloud ...
- 为Spring Cloud Ribbon配置请求重试(Camden.SR2+)
当我们使用Spring Cloud Ribbon实现客户端负载均衡的时候,通常都会利用@LoadBalanced来让RestTemplate具备客户端负载功能,从而实现面向服务名的接口访问. 下面的例 ...
- Spring Cloud Feign原理详解
目录 1.什么是Feign? 2.Open Feign vs Spring Cloud Feign 2.1.OpenFeign 2.2.Spring Cloud Open Feign 3.Spring ...
- SpringCloud入门之应用程序上下文服务(Spring Cloud Context)详解
构建分布式系统非常复杂且容易出错.Spring Cloud为最常见的分布式系统模式提供了简单易用的编程模型,帮助开发人员构建弹性,可靠和协调的应用程序.Spring Cloud构建于Spring Bo ...
- spring sessionFactory 属性配置详解,applicationContext中各种属性详解
1.Bean的id为sessionFactory,对应的类为AnnotationSessionFactory,即采用注解的形式实现hibernate. 2.hibernateProperties,配置 ...
- Spring Boot的前世今生以及它和Spring Cloud的关系详解。
要了解Spring Boot的发展背景,还得从2004年Spring Framework1.0版本发布开始说起,不过大家都是从开始学习Java就使用Spring Framework了,所以就不做过多展 ...
- spring mvc+myBatis配置详解
一.spring mvc Spring框架(框架即:编程注解+xml配置的方式)MVC是Spring框架的一大特征,Spring框架有三大特征(IOC(依赖注入),AOP(面向切面),MVC(建模M- ...
- Spring Boot Tomcat配置详解
参数配置容器 server.xx开头的是所有servlet容器通用的配置,server.tomcat.xx开头的是tomcat特有的参数,其它类似. 所有参数绑定配置类:org.springframe ...
随机推荐
- java静态方法Static
静态方法 是 与类 而 不是与对象 相关联的.
- Linux学习(1)vi编辑器的常用命令
今天对Linux中的vi编辑器进行了学习,对其中的常用命令进行总结: 数字 0 或^:光标移到行首 $ :光标移到行尾 H :光标移到屏幕的首行 L ...
- EM 12c: OMS Failed to start After restarting the Repository Database or reboot of the server
原文地址:http://blog.csdn.net/wanghui5767260/article/details/39398449 更全面,更专业 EM 12c: OMS Failed to star ...
- SecureCRT 专题
SecureCRT在同一窗口打开多个标签:选中“在标签页中打开”即可 SecureCRT同时向多个tab窗口发送相同的命令 Step by step: 作为管理N台服务器,而又要执行相同命令又不想用脚 ...
- 上传图片时,使用GDI+中重绘方式将CMYK图片转为RGB图片
原文:上传图片时,使用GDI+中重绘方式将CMYK图片转为RGB图片 我们知道,如果网站上传图片时,如果用户上传的是CMYK图片,那么在网站上将是无法显示的,通常的现象是出现一个红叉.下面使用将Ima ...
- 深入python3 (Dive Into Python 3) 在线阅读与下载
在线阅读:http://book.doucube.com/diveintopython3/ 中文版 下载地址:https://github.com/downloads/diveintomark/di ...
- WPF:将Office文档、任意类型文件嵌入到EXE可执行文件中
原文:WPF:将Office文档.任意类型文件嵌入到EXE可执行文件中 版权声明:本文为博主原创文章,未经博主允许可以随意转载 https://blog.csdn.net/songqingwei198 ...
- js调查server
<script type="text/javascript"> function showUnreadNews() { $(document).ready(functi ...
- VC实现程序重启的做法
作者:朱金灿 来源:http://blog.csdn.net/clever101 很多时候系统有很多配置项,修改了配置项之后能有一个按钮实现系统重启.所谓重启就是杀死系统的当前进程,然后重新开一个新进 ...
- 关于 Swift 中的 Array.contains 方法
Swift 2.0 中对语言进行了又一次的改进,这次将整个语言变得更加面向对象化,比如在 Swift 1.x 中如果要判断某个元素是否在数组中,就需要用到 contains 函数: if contai ...
