-
下面是我们的网管在路由转发一个请求的时候,出现了错误, 看提示是发现连接已经断连,而且http响应已经发送了一部分,导致无法重试请求
-
下面是另一个例子,
从上面连个日志例子看,我觉得是网管的连接池问题, 连接池的连接失效了(因为上游的服务器重启啥的),但网关还在用这个连接去转发http请求.
想询问下老师们,有什么调优参数,可以优化这种问题现象
下面是我们的网管在路由转发一个请求的时候,出现了错误, 看提示是发现连接已经断连,而且http响应已经发送了一部分,导致无法重试请求
下面是另一个例子,
从上面连个日志例子看,我觉得是网管的连接池问题, 连接池的连接失效了(因为上游的服务器重启啥的),但网关还在用这个连接去转发http请求.
想询问下老师们,有什么调优参数,可以优化这种问题现象
使用的网关版本是多少?
3.0.6的
你的问题其实服务信息没有及时刷新。
网关服务信息的刷新是需要从注册中心读数据的。网关定义了 RouteRefreshListener触发这个动作,但具体实现是需要有注册中心的客户端支持。你用的注册中心是什么?
NACOS2.1.1
帖子的现象是偶尔出现的,也不一定出现这个问题, 有时浏览器页面停了一段时间,去刷新页面就会出现500错误, 看日志就是类似打印.
nacos的client没有实现动态更新网关路由信息的能力。所以这个路由信息的更新是网关的负载均衡模块做的,是缓存实现,默认超时时间30s。
一般来说我们不需要负载均衡模块来做缓存,因为在注册中心的客户端中已经有一个服务信息的列表缓存了。所以通过下面的配置关闭:
spring:
cloud:
loadbalancer:
cache:
enabled: false
如果还要优化就得从nacos的客户端入手了
好的,感谢老师支持
重新翻了下文档,缓存可以直接通过配置关闭
好的,我试下,老师辛苦了