Microservices 微服务应该负责这个还是api网关?

Microservices 微服务应该负责这个还是api网关?,microservices,Microservices,我正在构建一个微服务架构,但有一部分我有点困惑。我使用Kafka作为消息代理系统在我的服务中进行通信。一个完美的例子是。它返回持续时间、距离、价格等。我假设他们对每一项都有一个微服务,即定价服务、持续时间/距离服务、司机服务、,等等。我的问题是,当点击端点时,requests microservice是否会对其他microservice进行rest调用,以检索持续时间、距离等数据?或者API网关会解决这个问题吗?我说这取决于用例。如果服务A需要知道服务B知道什么,那么服务A对服务B进行REST调

我正在构建一个微服务架构,但有一部分我有点困惑。我使用Kafka作为消息代理系统在我的服务中进行通信。一个完美的例子是。它返回持续时间、距离、价格等。我假设他们对每一项都有一个微服务,即定价服务、持续时间/距离服务、司机服务、,等等。我的问题是,当点击端点时,requests microservice是否会对其他microservice进行rest调用,以检索持续时间、距离等数据?或者API网关会解决这个问题吗?

我说这取决于用例。如果服务A需要知道服务B知道什么,那么服务A对服务B进行REST调用是完全明智的。但是,如果网关中只需要A和B的组合知识,那么网关可以组合结果。

这两种方法都是非常有效的,但我会采用估计微服务的方式来避免在API网关中放入太多逻辑


也许在将来,您的估算计算会发生变化,并且每次更新网关对我来说没有多大意义

实际上,并非所有网关API都支持多个调用和聚合。在微服务体系结构中,有一个公共模式(“,”,特别是“聚合器模式”),其思想是,您需要创建一个单独的服务,该服务将包含多个调用和聚合的业务逻辑。

所有微服务都应遵循所有客户端的单一入口点。作为标准做法,所有端点(即API或微服务)都应在API网关下,客户端应仅通过API网关访问它。即如果/请求/估计对其他微服务的请求,以检索持续时间、距离的数据,然后其他微服务也在API GW下。