spring-cloud - Zuul 反向代理第一次请求失败
问题描述
设置:
我正在使用 Zuul 反向代理向两个不同的后端服务发送请求。我不需要此应用程序的任何负载平衡。我只配置了一个过滤器,它不参与这个过程并且确认没有被调用。每个服务的 ZuullistOfServers
在运行时使用来自服务器的以下代码动态填充:
clientFactory.getClientConfig(SERVICE_ID).set(CommonClientConfigKey.ListOfServers, "https://" + host + ":" + port);`
相关的application.yaml设置如下:
zuul:
ignored-services: '*'
add-proxy-headers: false
sensitive-headers:
# Use more descriptive name for the Zuul servlet bypass
servlet-path: '/large-file-uploads'
ribbon:
eager-load:
enabled: true
routes:
serviceone:
path: /service_one/**
serviceId: 'service_one'
servicetwo:
path: /service_two/**
serviceId: 'service_two'
ribbon:
eureka:
enabled: false
问题:
在listOfServers
应该设置之后(通过上面的代码),对服务的第一个请求会返回状态 500,并且服务器会打印 Zuul 转发错误(可以在此处找到)。任何后续调用都会按预期进行。此外,它似乎只有在后端服务重新启动后才会发生,尽管这不是服务的问题(通过 Postman 测试确认)。
任何帮助将不胜感激。谢谢!
解决方案
原来是读取超时问题,请看 ryanjbaxter 的回答:https ://github.com/spring-cloud/spring-cloud-netflix/issues/3021
推荐阅读
- sql - sql join 后,derived_table1 中的列不存在
- hydra - Hydra:如何将同一组中的配置文件分配给两个不同的字段
- ios - 无法在 Xcode 12.4 中注册捆绑标识符 - 生成证书时出错
- cmake - 通过链接链接外部库创建库
- microsoft-dynamics - 有没有办法在 Dynamics 365 中禁用“高级设置”选项?
- vue.js - 用 Vuex 初始化变量
- apache-spark - 在结构化流中读取文件时检查 Spark 中是否存在列
- format - 自动完成 html 标记是否有括号扩展?
- c# - 如何解决“根据验证程序,远程证书无效”[FTP 中的错误]
- xamarin.ios - 适用于 iOS 的 Xamarin.Forms 附加文件夹,用于带后缀的日志