Gateway网关提示Flipping property: system-server.ribbon.ActiveConnectionsLimit to use NEXT property: niws
自己有一个微服务项目,使用了GateWay进行限流处理;
·
一、问题描述
自己有一个微服务项目,使用了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
更多推荐
已为社区贡献4条内容
所有评论(0)