Zuul 网关 - setSendZuulResponse & removeRouteHost

Posted

技术标签:

【中文标题】Zuul 网关 - setSendZuulResponse & removeRouteHost【英文标题】:Zuul Gateway - setSendZuulResponse & removeRouteHost 【发布时间】:2018-03-20 05:59:53 【问题描述】:

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

首先,谁能告诉我两者之间的区别。从这个post,他们做同样的事情,但我找不到描述这些的文档(sendZuulResponse 和removeRouteHost)。

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

"If this value if true then the response should be sent to the client."

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

谢谢。

【问题讨论】:

【参考方案1】:

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

RequestContext.getCurrentContext().getRouteHost() != null && RequestContext.getCurrentContext().sendZuulResponse();

从中我们可以看出,如果路由主机为空或Zuul响应设置为false,则过滤器不会运行,也不会向下游服务发出请求。

【讨论】:

以上是关于Zuul 网关 - setSendZuulResponse & removeRouteHost的主要内容,如果未能解决你的问题,请参考以下文章

API网关对比zuul.1,zuul.2,gateway

zuul网关

网关zuul——请求流转路径

zuul网关

zuul网关

springcloud06(zuul网关)