-
Notifications
You must be signed in to change notification settings - Fork 0
Zuul 3
Yasin Shaw edited this page Aug 28, 2018
·
1 revision
Zuul路由不仅可以转发微服务,还可以转发到其它网址或者Zuul本身提供的接口。如下配置:
zuul:
routes:
first:
path: /first/**
url: http://first.example.com # 到其它网址
second:
path: /second/**
url: forward:/second # 到Zuul本身定义的接口
文件上传分两种情况。如果是小文件上传,则按普通的路由转发规则。而如果是大文件上传, 需要加上/zuul/*
前缀。这样做的目的是可以绕过Spring的DispatcherServlet
,为了避免多段处理。如果你集成了Ribbon,那么需要对Ribbon进行超时设置:
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 60000
ribbon:
ConnectTimeout: 3000
ReadTimeout: 60000
需要注意的是,如果你想使用“流式”上传你的文件,那么需要在请求的header里面加上:
Transfer-Encoding: chunked
当前端的查询参数过来时,查询参数字符串会被Zuul decode。然后会被Zuul 重新encode。它可能与最初的encode字符串不完全一样。
可以通过以下配置关掉:
zuul:
forceOriginalQueryStringEncoding: true
需要的是这个配置只对SimpleHostRoutingFilter
有效。
如果你在启动类上面配置的是@EnableZuulServer
注解而不是@EnableZuulProxy
注解,你可以没有代理功能的Zuul Server。它不会自动加入有关代理的filters,而其它filters仍然会自动加载进去。
这种情况下,Zuul不再具有服务发现和代理功能。
Zuul实质上是由一系列的过滤器组成。你可以通过zuul.<SimpleClassName>.<filterType>.disable=true
来关掉某个过滤器。比如:
zuul.SendResponseFilter.post.disable=true
Powered By RedSpider
Sidebar