Zuul代理:代理路由上的聚合映射器

时间:2018-08-26 09:08:11

标签: spring-boot routing spring-cloud netflix-zuul

我有一个看起来像这样的应用程序

App architecture

现在,每当网关收到请求时,就会调用Zuul过滤器AuthorizationInterceptor,该过滤器通过使用User Service进行一些调用来进行身份验证/授权。如果授权成功,则将调用实际的微服务。

现在有了新的要求,我需要编写一些聚合的API,该API从两个服务中获取数据并合并数据。因此,我在网关代理服务器上添加了@RestController,但在未调用其余控制器之前,AuthorizationInterceptor并未被调用。即使本地处理了请求,我如何告诉ZuulFilter被调用。

对此有什么解决方案吗?是否应该以其他方式设计架构?

1 个答案:

答案 0 :(得分:0)

我认为将这种逻辑应用于网关服务不是一个好主意。

您所指的是一个聚合服务,它可以作为网关的另两个服务而位于网关之后,但是它不存储数据或执行某些业务逻辑,而只是从其他两个服务中获取数据并将它们聚合。这样,AuthorizationInterceptor也将在网关级别被调用。

另一种骇人听闻的方法是创建一个自定义的ZuulFilter,它处理虚构的终结点调用并聚合数据。这样,您的AuthorizationInterceptor也将被调用,但是将这种逻辑放入边缘服务中不是一个好主意。