Spring Cloud Zuul 用于复合 API 调用?
Spring Cloud Zuul for composite API calls?
我开始构建一个微服务 API 网关,我正在使用 Spring Cloud Zuul 来帮助我进行路由。但是对网关的一些调用 API 将需要对不同服务的多个请求。
假设我有 2 项服务:订单详细信息服务和送货服务。我想要一个网关端点 GET /orders/{orderId} 调用订单详细信息服务,然后调用交付服务,并将两者结合到 return 完整的订单详细信息和交付。这可能通过 Zuul 的路由(也许是过滤器?)还是我应该使用 RestTemplate 之类的东西来手动制作这些请求(专门为这些类型的请求创建一个控制器)?
您可以避免这种复杂情况,并将您的 Gateway
请求转发给 Order service
来下订单,而不是将 HTTP
请求从 Order service
转发给 [=14] =] 进行交付。从本质上讲,这些实体就是这样工作的。不用担心速度,它非常快。
首先,在您的情况下,如果您想获取订单详细信息和送货详细信息,应该以相同的方式进行。甚至您的订单服务也应该在其数据库中保留一些交付详细信息。我们就是这样做的,你应该避免冗余数据,但有时它是有道理的。
下单图如下:
有道理吗?
我开始构建一个微服务 API 网关,我正在使用 Spring Cloud Zuul 来帮助我进行路由。但是对网关的一些调用 API 将需要对不同服务的多个请求。
假设我有 2 项服务:订单详细信息服务和送货服务。我想要一个网关端点 GET /orders/{orderId} 调用订单详细信息服务,然后调用交付服务,并将两者结合到 return 完整的订单详细信息和交付。这可能通过 Zuul 的路由(也许是过滤器?)还是我应该使用 RestTemplate 之类的东西来手动制作这些请求(专门为这些类型的请求创建一个控制器)?
您可以避免这种复杂情况,并将您的 Gateway
请求转发给 Order service
来下订单,而不是将 HTTP
请求从 Order service
转发给 [=14] =] 进行交付。从本质上讲,这些实体就是这样工作的。不用担心速度,它非常快。
首先,在您的情况下,如果您想获取订单详细信息和送货详细信息,应该以相同的方式进行。甚至您的订单服务也应该在其数据库中保留一些交付详细信息。我们就是这样做的,你应该避免冗余数据,但有时它是有道理的。
下单图如下:
有道理吗?