最近使用springcloud搭建微服务;api-server作为接口提供服务 zxmseed-server作为消费,当zxmseed-server调用api-server一段时间过后 再去访问就返回read time out。
在网上找到三种解决方案:
1:设置关闭熔断器
feign:
httpclient:
enabled:true
#熔断器关闭
hystrix:
enabled: false
2:关闭超时时间:
hystrix:
command:
default:
execution:
timeout:
enabled: false
3:设置ribbon超时时间:
ribbon.ReadTimeout: 1000
ribbon.ConnectTimeout: 250
结果都是一样,间隔时间久了 访问就read time out;
注册中心配置:
server:
port: 8888
eureka:
instance:
hostname: localhost
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
api-server 配置:
server:
port: 8762
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8888/eureka/
spring:
application:
name: api-server
datasource:
url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8&&useSSL=false
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
feign:
hystrix:
enabled: false
zxmseed-server 消费者配置:
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8888/eureka/
spring:
application:
name: zxmseed-server
server:
port: 8800
ribbon.ReadTimeout: 1000
ribbon.ConnectTimeout: 250
有什么方式可以让他不超时,如果我的服务访问量少间隔时间就会很长 怎么样设置不超时!?
1、Spring Cloud超时问题,涉及到多个配置,比如Ribbon超时和限流超时控制,如果时间太短容易导致请求超时。
2、当向服务调用添加低“延迟”参数时,网关的行为没有任何与超时相关的问题,但是如果延迟参数被更改为很短时间低至1到1.5秒,则网关将超时。原因是网关设置使用Eureka服务器,则网关就会使用Netflix组件进行实际调用。
4、此外,Hystrix确保调用是容错。 我们遇到的第一个超时是因为Hystrix具有非常低的延迟容限阈值,调整hystrix设置应该让我们超过第一个超时。
5、配置2个部分
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 15000
6、Ribbon服务svc:
ribbon:
ReadTimeout: 15000
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。