微服务应该处理这个还是api网关?

时间:2018-05-14 20:53:37

标签: microservices

我正在构建一个微服务架构,并且在某个方面有点困惑。我使用Kafka作为消息代理系统在我的服务中进行通信。一个完美的例子是Uber's API for request estimation。它会返回持续时间,距离,价格等。我认为他们每个都有微服务,即定价服务,持续时间/距离服务,司机服务等。我的问题是何时到达终点{{1}请求微服务是否对其他微服务进行休息调用以检索持续时间,距离等数据?或者API网关是否会处理这个问题?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

两者都是完全有效的方法,但我会采用Estimate微服务方式来避免在API网关中放置太多逻辑。

将来您的估算计算可能会发生变化,每次更新网关对我来说都没有多大意义。

答案 2 :(得分:0)

实际上,并非所有网关API都支持多个调用和聚合。在微服务架构中,存在一个通用模式(“ API Composition”,“ Composition Patterns”,尤其是“聚合器模式”),其思想是您需要制作一个单独的服务,该服务将包含多个调用和聚合的业务逻辑。