spring-cloud - Spring Cloud Gateway 阻止路由发现请求

我正在使用 spring-cloud-starter-gateway 版本 2.1.0.RELEASE 的 Spring Cloud Gateway,我需要了解为什么 Gateway 会阻止执行请求DiscoveryClientRouteDefinitionLocator 进程。

Spring Cloud 版本:Greenwich.RELEASE。

我有两个环境:暂存和生产。

在生产环境中,我们有一个工作网关,对于 /actuator/health 调用有以下延迟:

我正在调查为什么这些峰值发生在一个简单的健康调用上,我发现网关有时会阻止任何请求(甚至健康或真正的微服务调用)来执行我所有微服务的发现路由。

我们使用 Consul 作为发现服务器,我试图在我的暂存环境中测试这种延迟(Consul 上的硬件资源更少)。此 block 的影响很明显:

在改进 Consul 硬件资源后,我们不再有尖峰,但延迟仍然不完美(发现所有路由时有小尖峰):

我要问:为什么Spring Cloud Gateway即使有缓存功能也会阻塞请求?这个进程不应该在后台运行吗?我做错了什么?真的是 Spring Cloud Gateway 的问题吗?

谢谢。

最佳答案

讨论 here以前版本的 Spring Cloud Gateway 使用阻塞发现客户端。

使用比 2.1.5.RELEASE 更新的版本将导致网关更加异步,不会执行很多阻塞请求。

https://stackoverflow.com/questions/56462270/

相关文章:

c# - 如何在另一个类中获取单例实例

angular - 找不到 "src/assets"文件夹中的 JSON 文件

firebase - 如何通过 FlatList 将键传递到它的 renderItem 中?

amazon-web-services - 对于不支持发件人 ID 的国家/地区,AWS SNS S

r - 如何更改 R 包的默认库路径

sql-server - 连接到 SharePoint 服务器的 SQL 服务器

ios - 如何在我的 flutter 应用程序中添加连续移动的背景?

android - Xamarin 安卓 : Cannot resolve GoogleSignIn

ionic-framework - ionic 应用程序上的 Youtube iframe 生成播放

powerbi - 在 Power BI 中正确显示持续时间和格式