我正在使用spring-cloud-starter-gateway
版2.1.0.RELEASE
版本的Spring Cloud Gateway,我需要了解为什么Gateway阻止执行DiscoveryClientRouteDefinitionLocator
流程的请求。
Spring Cloud版本:Greenwich。发布。
我有两种环境:演出和制作。
在生产中,我们有一个工作网关,它对/actuator/health
的呼叫具有以下延迟:
我正在研究为什么这些峰值会在简单的运行状况调用上发生,并且我发现网关有时会阻止执行我所有微服务的发现路由的任何请求(甚至是运行状况或真正的微服务调用)。
我们将Consul用于发现服务器,我尝试在我的登台环境中测试此延迟(以更少的Consul硬件资源)。此块的影响显而易见:
改善Consul硬件资源后,我们没有更多的峰值,但是对于运行状况呼叫,延迟仍然不是完美的(并且发现所有路由的峰值很小):
我需要问:为什么即使具有缓存功能,Spring Cloud Gateway也会阻止请求?此过程不应该在后台运行吗?我做错了什么? Spring Cloud Gateway真的有问题吗?
谢谢。
答案 0 :(得分:0)
正如所讨论的,here 之前版本的 Spring Cloud Gateway 使用的是阻塞发现客户端。
使用比 2.1.5.RELEASE 更新的版本会导致更异步的网关不会执行很多阻塞请求。