Evi*_*us1 43 spring-cloud netflix-zuul
我正在使用作为zuul代理(@EnableZuulProxy)的前端spring spring应用程序(微服务)将来自外部源的请求路由到使用spring cloud(spring boot)编写的其他内部微服务.
zuul服务器直接位于samples部分的应用程序中
@SpringBootApplication
@Controller
@EnableZuulProxy
@EnableDiscoveryClient
public class ZuulServerApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(ZuulServerApplication.class).web(true).run(args);
}
}
Run Code Online (Sandbox Code Playgroud)
我在本地运行这组服务,它似乎工作正常但如果我在网络上运行它有一些负载或通过VPN然后我开始看到zuul转发错误,我在日志中看到客户端超时
有没有办法改变zuul前锋的超时,所以我可以从我的直接关注中消除这个问题.有什么可访问的参数设置.
我正处于发布阶段,这只是出现了:)
aco*_*hen 32
在我的情况下,我不得不更改以下属性:
zuul.host.socket-timeout-millis=30000
Run Code Online (Sandbox Code Playgroud)
cod*_*ent 20
我遇到了同样的问题:在长时间的请求中,Zuul的hystrix命令在大约一秒钟后仍然保持超时,尽管设置ribbon.ReadTimeout=10000.
我通过完全禁用超时来解决它:
hystrix:
command:
default:
execution:
timeout:
enabled: false
Run Code Online (Sandbox Code Playgroud)
另一个有效的方法是将Zuul的Hystrix隔离策略改为THREAD:
hystrix:
command:
default:
execution:
isolation:
strategy: THREAD
thread:
timeoutInMilliseconds: 10000
Run Code Online (Sandbox Code Playgroud)
dse*_*ert 14
我不得不改变两次超时以迫使zuul停止超时长时间运行的请求.即使禁用hystrix超时,功能区仍会超时.
hystrix:
command:
default:
execution:
timeout:
enabled: false
ribbon:
ReadTimeout: 100000
ConnectTimeout: 100000
Run Code Online (Sandbox Code Playgroud)
Edu*_*Ros 12
这对我有用,我必须在以下位置设置连接和套接字超时application.yml:
zuul:
host:
connect-timeout-millis: 60000 # starting the connection
socket-timeout-millis: 60000 # monitor the continuous incoming data flow
Run Code Online (Sandbox Code Playgroud)
小智 7
如果 Zuul 使用服务发现,则需要使用ribbon.ReadTimeout和ribbon.SocketTimeoutRibbon 属性配置这些超时。
如果您通过指定 URL 配置了 Zuul 路由,则需要使用zuul.host.connect-timeout-millis和zuul.host.socket-timeout-millis
我的意思是路线
zuul:
routes:
dummy-service:
path: /dummy/**
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32572 次 |
| 最近记录: |