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 = 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
就好按照你配置的来。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
相关推荐
-
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数据库的
随机推荐
- python的几种开发工具介绍
- 安装SQL2005时出现的版本变更检查SKUUPGRADE=1问题的解决方法
- VMware中Linux共享mysql数据库的方法
- 利用Python查看目录中的文件示例详解
- Python探索之静态方法和类方法的区别详解
- request.getParameter()取值为null的解决方法
- linux c多线程编程实例代码
- Android 2.3.7.r1 camera录像过程中按menu菜单键时会停止录像
- js 高效去除数组重复元素示例代码
- ajax传递多个参数的实现代码
- ListView实现下拉刷新加载更多的实例代码(直接拿来用)
- nginx中域名、目录的301重定向配置示例
- jQuery点击改变class并toggle及toggleClass()方法定义用法
- JavaScript头像上传插件源码分享
- 关于全局变量和局部变量的那些事
- Linux中进程和线程的对比与区别
- 解析C++中虚析构函数的作用
- Winform让DataGridView左侧显示图片
- C#判断上传文件是否是图片以防止木马上传的方法
- C#实现谷歌翻译API示例代码