一、问题描述

自己有一个微服务项目,使用了GateWay进行限流处理;但是最近发现,无论如何,系统都登陆不上去了,出现了问题:

控制台总是提示Flipping property: system-server.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483647;如下图所示: 2. 登陆界面一直提示系统繁忙: 然而,认证服务却提示登陆成功:

二、思考

考虑到使用了GateWay进行限流处理,以及Nacos进行服务注册与发现,又使用了Feign进行服务调用,现在的问题是: 认证服务(被调着)响应的结果与服务请求着接受到的结果出现了偏差,因此,我将解决问题的方向定位在了GateWay上面;然后一路摸索,果然发现了端倪: 仔细看界面的请求时间: 也就是说,登陆认证服务请求了大概10s的时间,然后就取消了;然后我们再来看看网关的限流配置:

# hystrix 信号量隔离,5秒后自动超时

hystrix:

# enabled: true

# shareSecurityContext: true

command:

default: # 默认

execution:

isolation:

strategy: SEMAPHORE

thread:

timeoutInMilliseconds: 5000

fallbackCmd:

execution:

isolation:

# strategy: SEMAPHORE

thread: # 5秒没响应自动熔断 跳转到配置的fallbackUri

timeoutInMilliseconds: 5000

问题的关键,就在于timeoutInMilliseconds: 5000这一行配置上面;

三、解决问题

由二我们得知,出现上述问题的主要原因,就是我们的hystrix熔断时间设置得太短了;因此,只要我们将熔断时间设置长一点,这个问题就迎刃而解了:

hystrix:

# enabled: true

# shareSecurityContext: true

command:

default: # 默认

execution:

isolation:

strategy: SEMAPHORE

thread:

timeoutInMilliseconds: 70000

fallbackCmd:

execution:

isolation:

# strategy: SEMAPHORE

thread: # 5秒没响应自动熔断 跳转到配置的fallbackUri

timeoutInMilliseconds: 70000

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: