SpringCloud Edgware.SR3版本中Ribbon的timeout设置方法

概述

Spring Cloud中,客户端的负载均衡使用的是RibbonRibbon的超时时间默认很短,需要进行调整。

Spring Cloud版本

Edgware.SR3

Ribbon timeout设置

Ribbon的默认timeout时间是1秒,这个可以在RibbonClientConfiguration类中看到。

public class RibbonClientConfiguration {
 public static final int DEFAULT_CONNECT_TIMEOUT = 1000;
 public static final int DEFAULT_READ_TIMEOUT = 1000;
}

当你在日志里看到如下报错的时候,说明Ribbon发生timeout了。

feign.RetryableException: Read timed out executing POST http://xxxapp/xxxurl
 at feign.FeignException.errorExecuting(FeignException.java:67)
 at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:104)
 at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76)
 at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:103)

DEFAULT_READ_TIMEOUT设置为1秒,有点短了,虽然大部分应用接口,如果响应时间超过了1秒,已经是非常长的,但是在流量比较大的时候,应用的接口响应本来就会变慢,为了防止线上故障,最好将这个时间设置为长一些。一般是3秒到5秒。

我们可以在application.yml或者bootstrap.yml文件中如下设置:

ribbon:
  ReadTimeout: 5000
  ConnectTimeout: 5000

注意,在Eclipse或者Intellij IDEA里,这两个timeout时间属性是不会有提示的,这个很正常。不是所有的属性,IDE都能正常提示的,不过没关系,不影响使用的。只要你配置了,Ribbon就好按照你配置的来。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • springboot2.0和springcloud Finchley版项目搭建(包含eureka,gateWay,Freign,Hystrix)

    前段时间spring boot 2.0发布了,与之对应的spring cloud Finchley版本也随之而来了,两者之间的关系和版本对应详见我这边文章:spring boot和spring cloud对应的版本关系 项目地址:spring-cloud-demo spring boot 1.x和spring cloud Dalston和Edgware版本搭建的微服务项目现在已经很流行了,现在很多企业都已经在用了,这里就不多说了. 使用版本说明: spring boot 2.0.x spring

  • springcloud gateway聚合swagger2的方法示例

    问题描述 在搭建分布式应用时,每个应用通过nacos在网关出装配了路由,我们希望网关也可以将所有的应用的swagger界面聚合起来.这样前端开发的时候只需要访问网关的swagger就可以,而不用访问每个应用的swagger. 框架 springcloud+gateway+nacos+swagger 问题分析 swagger页面是一个单页面应用,所有的显示的数据都是通过和springfox.documentation.swagger.web.ApiResponseController进行数据交互,

  • SpringCloud Finchley+Spring Boot 2.0 集成Consul的方法示例(1.2版本)

    概述: Spring Boot 2.0相对于之前的版本,变化还是很大的.首先对jdk的版本要求已经不能低于1.8,其次依赖的spring的版本也是最新版本5.0,并集成了功能强大的webflux等. SpringCloud Finchley 版本的升级也带来了全新组件:Spring Cloud Function 和 Spring Cloud Gateway ,前者致力于函数式编程模块的整合,后者则是网关netflix zuul 的替换组件. 1)需要的依赖: <?xml version="

  • SpringCloud版本问题报错及解决方法

    问题 springboot 集成springcloud时常常由于版本问题而报错,如下: com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: connect 或者 com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known ser

  • 详解SpringCloud Ribbon 负载均衡通过服务器名无法连接的神坑

    一,问题 采取eureka集群.客户端通过Ribbon调用服务,Ribbon端报下列异常 java.net.UnknownHostException: SERVICE-HI java.lang.IllegalStateException: No instances available for SERVICE-HI java.lang.IllegalStateException: Request URI does not contain a valid hostname: http://SERVI

  • SpringCloud实现SSO 单点登录的示例代码

    前言 作为分布式项目,单点登录是必不可少的,文本基于之前的的博客(猛戳:SpringCloud系列--Zuul 动态路由,SpringBoot系列--Redis)记录Zuul配合Redis实现一个简单的sso单点登录实例 sso单点登录思路: 1.访问分布式系统的任意请求,被Zuul的Filter拦截过滤 2.在run方法里实现过滤规则:cookie有令牌accessToken且作为key存在于Redis,或者访问的是登录页面.登录请求则放行 3.否则,将重定向到sso-server的登录页面且

  • Springcloud-nacos实现配置和注册中心的方法

    最近,阿里开源的nacos比较火,可以和springcloud和dubbo共用,对dubbo升级到springcloud非常的方便.这里学习一下他的配置和注册中心.我主要记录一下它的使用方式和踩得坑. nacos简单介绍 Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现.服务配置.服务元数据及流量管理. Nacos 帮助您更敏捷和容易地构建.交付和管理微服务平台. Nacos 是构建以"服务"为中心的现代应用架构 (例如

  • 详解用JWT对SpringCloud进行认证和鉴权

    JWT(JSON WEB TOKEN)是基于RFC 7519标准定义的一种可以安全传输的小巧和自包含的JSON对象.由于数据是使用数字签名的,所以是可信任的和安全的.JWT可以使用HMAC算法对secret进行加密或者使用RSA的公钥私钥对来进行签名. JWT通常由头部(Header),负载(Payload),签名(Signature)三个部分组成,中间以.号分隔,其格式为Header.Payload.Signature Header:声明令牌的类型和使用的算法 alg:签名的算法 typ:to

  • SpringCloud Edgware.SR3版本中Ribbon的timeout设置方法

    概述 Spring Cloud中,客户端的负载均衡使用的是Ribbon,Ribbon的超时时间默认很短,需要进行调整. Spring Cloud版本 Edgware.SR3 Ribbon timeout设置 Ribbon的默认timeout时间是1秒,这个可以在RibbonClientConfiguration类中看到. public class RibbonClientConfiguration { public static final int DEFAULT_CONNECT_TIMEOUT

  • Android编程中TextView字体属性设置方法(大小、字体、下划线、背景色)

    本文实例讲述了Android编程中TextView字体属性设置方法(大小.字体.下划线.背景色).分享给大家供大家参考,具体如下: import android.content.Context; import android.graphics.Color; import android.text.SpannableString; import android.text.Spanned; import android.text.style.AbsoluteSizeSpan; import andr

  • 基于TabLayout中的Tab间隔设置方法(实例讲解)

    TabLayout和ViewPager搭配使用,是有很多方便性,但是TabLayout这东西还是有很多被人吐槽的地方. 这里只讲怎么设置tab之间的间隔,网上找了一堆方法,什么padding和margin的啥都没用,没办法,想用TabLayout只能自己想办法了.效果如下: 一.实现方法,既然这东西不好设置,那就直接在背景上做点事情,布局代码如下: <android.support.design.widget.TabLayout xmlns:app="http://schemas.andr

  • VMware中虚拟机的NAT设置方法

    最近重新转了windows8,然后再win8下想装一个Ubuntu的虚拟机,于是先装了VMware9再安装了ubuntu,但是发现虚拟机上不了网,于是在网上找了很多关于vmware的nat设置的文章来看,终于解决了这个问题,现在将其写出来,希望对大家有用.  一.设施windows下的网络设置. 1.进入本网络的属性 2.设置共享,共享的网卡为VMware network adapter VMnet8 二.对VMware中的NAT进行设置 1. 2 点击添加 3. Host Port为宿主机的端

  • Python3.x版本中新的字符串格式化方法

    我们知道Python3.x引入了新的字符串格式化语法.不同于Python2.x的 复制代码 代码如下: "%s %s "%(a,b) Python3.x是 复制代码 代码如下: "{0} {1}".format(a,b) 今天我在用MySQLdb时,需要用带参数的 复制代码 代码如下: cursor.execute(sql,param) 语句来完成SQL操作.被其他文章的陈旧说法给误导,用了 复制代码 代码如下: cursor.execute('insert int

  • Apache中php.ini的设置方法

    例如: 复制代码 代码如下: 1 LoadModule php5_module "D:/wamp/bin/php/php5.4.3/php5apache2_2.dll"2 PHPIniDir "D:\wamp\bin\php\php5.4.3" 这样Apache使用的php.ini和PHP的DLL都是加载的5.4.3版本的.让IIS使用环境变量中的php.ini. 另外在wamp启动的时候,经常会提示类似 "无法定位程序输入点 php_checkuid 于

  • window中oracle环境变量设置方法分享

    window server中Oracle的环境变量设置 1.右击"我的电脑"->选择"属性"->选择"高级"->单击"环境变量"2.选择"Path"这一行,单击"编辑",在"Path"的变量值文本框的最后面先加入一个分号":",然后再分号后面加入sqlplus文件的目录路径,如"C:\Program Files\orac

  • Serv-U中虚拟目录的设置方法(文字+图文)

    Serv-U虚拟目录设置文字版: 一.用Serv-U时,如果使用虚拟路径映射(虚拟目录),那么就只需设定某个文件夹为主目录,然后把想要分享文件映射到该目录下,可以有效提高利用效率,好处不言自明:不用每次把文件内容复制到主目录下.访客通过FTP就可以打开主人设定的文件资料--即使是在不同盘符下的. 要增加虚拟目录,以用户(admin)的主目录为F:\admin,想要能通过ftp://IP/admin的格式能访问到在E:\Download\中的内容,则需要为它添加虚拟目录.操作步骤如下: (1)在管

  • Bash Shell中忽略大小写的设置方法

    大多数人在使用 Bash 时,都会对其进行改造,因为默认的设置真的好难用- 参考以下 ~/.inputrc 设置: 复制代码 代码如下: # do not show hidden files in the list set match-hidden-files off   # auto complete ignoring case set show-all-if-ambiguous on set completion-ignore-case on "\ep": history-sear

  • 在MySQL中修改密码及访问限制的设置方法详解

    由于其源码的开放性及稳定性,且与网站流行编 挥镅 PHP的完美结合,现在很多站点都利用其当作后端数据库,使其获得了广泛应用.处于安全方面的考虑,需要为每一用户赋于对不同数据库的访问限制,以满足不同用户的要求.下面就分别讨论,供大家参考.    一.MySQL修改密码方法总结  首先要说明一点的是:一般情况下,修改MySQL密码是需要有mysql里的root权限的,这样一般用户是无法更改密码的,除非请求管理员帮助修改.    方法一    使用phpMyAdmin  (图形化管理MySql数据库的

随机推荐