我使用前端Spring云应用程序(微服务)作为Zuul代理(@EnableZuulProxy
)将请求从外部源路由到使用Spring云编写的其他内部微服务(Spring boot)
Zuul服务器直接来自示例部分中的应用程序
java prettyprint-override">@SpringBootApplication
@Controller
@EnableZuulProxy
@EnableDiscoveryClient
public class ZuulServerApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(ZuulServerApplication.class).web(true).run(args);
}
}
我在本地运行了这组服务,这一切似乎都工作正常,但如果我在网络上运行它有一些负载,或通过VPN,然后我开始看到Zuul转发错误,我在日志中看到客户端超时。
有没有办法改变Zuul转发的超时时间,这样我就可以从眼前的问题中消除这个问题?对此有哪些可访问的参数设置?
我也遇到过同样的问题:在长请求中,尽管设置了ribbon,但Zuul的hystrix命令在大约一秒钟后仍然超时。ReadTimeout=10000
。
我通过完全禁用超时解决了这个问题:
hystrix:
command:
default:
execution:
timeout:
enabled: false
另一种可行的方法是将Zuul的Hystrix隔离策略更改为线程:
hystrix:
command:
default:
execution:
isolation:
strategy: THREAD
thread:
timeoutInMilliseconds: 10000
要设置的特性是:ribbon。一般情况下读取超时
和
在我的情况下,我必须改变以下属性:
zuul.host.socket-timeout-millis=30000
经过长时间的调查,问题似乎是长时间运行的请求超时,并且在NodeJS中再次调用endpoint。没有来自浏览器的新网络请求。我做了一些测试,2分钟后再次调用endpoint。我读到NodeJS中http请求的默认超时时间为2分钟。 https://nodejs.org/docs/latest-v12.x/api/http.html#http_server_timeout 我使用的是NestJS(有
我希望设置我的Spring Boot server超时,比如说15秒。明确一点:我希望如果我的服务器在15秒内没有响应,它将返回一个错误响应(类似于Heroku中发生的情况,只有30秒)。我怎么能那么做? 我的问题实际上源于这样一个事实,即该服务是一个网关,它调用另一个服务,有时需要很长时间来响应,而我无法控制该服务的超时。因为我使用的是SDK文件来调用服务器,所以我无法控制传出的调用。有没有一种
我有一个Spring Boot应用程序,我想实现的是,当我的Rest控制器需要更长的时间来处理请求时,只需发送错误而不继续处理请求。这可能吗?我如何以某种方式实现它,而无需在控制器级别进行修改,而是在应用程序级别进行修改。这是在最新的Spring启动
2013/04/22 12:35:56[错误]2709#0:*1从上游读取响应标头时上游超时(110:连接超时),客户端:xx.xx.xx.xx,服务器:,请求:“get/entity/datasenders/http/1.1”,上游:“uwsgi://127.0.0.1:9001”,主机:“xxx.xx.xx.x” 我已经设置了标题超时和uWSGI发送/读取超时5分钟,有人能告诉我我可以做什么来
我有一个在Tomcat7上运行的Spring3.0WebMVC应用程序。在应用程序启动时,我启动一个后台线程来加载内存缓存,其中包含来自数据库的记录。该线程从数据库加载所有数据通常需要一个多小时。在同一个应用程序中,我有一个@Controller注释类,它公开了一个REST接口,客户端可以通过该接口从加载的缓存中获取对象。 我们的要求之一是,在数据加载完成之前发出的任何REST请求都将立即向客户端
我们有一个应用程序接口实现在裸骨Scala Akka HTTP中--一对路由前面的大量计算(CPU和内存密集)。没有集群-所有运行在一个强壮的机器上。计算量相当大--一个独立请求可能需要60多秒才能完成。我们并不那么在意速度。没有阻塞IO,只是大量的CPU处理。 当我开始对它进行性能测试时,出现了一个有趣的模式:假设请求A1、A2、...、A10通过。它们会大量使用资源,结果Akka会为溢出的请求