Zuul 网关 - setSendZuulResponse & removeRouteHost

rj2*_*700 6 spring-boot spring-cloud netflix-zuul spring-cloud-netflix

只是想澄清一下 - 在 Netflix 的 Zuul 网关中,RequestContext 对象有两个方法,setSendZuulResponse 和 removeRouteHost。

首先,谁能告诉我两者之间的区别。从这篇文章中,他们做了同样的事情,但我找不到描述这些的文档(sendZuulResponseremoveRouteHost)。

其次,Zuul 过滤器是否命中了资源/源服务器而不管是否被过滤但只是隐藏了对客户端的响应?根据sendZuulResponse的文档,它说:

"If this value if true then the response should be sent to the client."
Run Code Online (Sandbox Code Playgroud)

我的理由是,如果此值设置为 false,则不应*将响应发送给客户端;然而,Zuul 有响应(???),这意味着它无论如何都发送了请求(如果这是有道理的)。

谢谢。

小智 0

如果您使用 Spring Cloud Netflix Zuul 依赖项,则SimpleHostRoutingFilter类(即进行下游调用的类)仅在满足以下代码时才会激活

RequestContext.getCurrentContext().getRouteHost() != null && RequestContext.getCurrentContext().sendZuulResponse();
Run Code Online (Sandbox Code Playgroud)

由此我们可以看到,如果路由主机为 null 或者 Zuul 响应设置为 false,则过滤器将不会运行,并且不会向下游服务发出请求。