如何在编排服务组合中隔离服务

时间:2018-03-11 22:58:24

标签: architecture microservices distributed-computing service-composition

我总是鼓励在不知道存在其他服务(隔离)的情况下设计每项服务。

几天前,我正在阅读有关微服务架构编排的编排和优点,我遇到了这个话题, 假设我们有一个由3种服务组成的系统:订购,付款,发货。如果我使用协调器,协调器知道何时以及如何调用每个服务。事实上它的职责是知道如何以及何时调用什么服务,但在编排中,我不知道何时付款服务不知道订购服务是否存在如何订阅其活动(当然至少订购系统需要付款型号)?

当我开始认为,如果我们在订购服务中有一种方法可以返回订购信息,然后是付款数据和运输数据,那么我会变得更加困惑。它将如何返还付款和运输数据?

1 个答案:

答案 0 :(得分:1)

  

当支付服务不知道订购服务存在时,它将如何订阅其活动(确定至少订购系统需要有支付模式)?

如果业务目的需要,服务可以知道另一个服务。只要确保你没有弄清楚目的并确保任何一项服务的独立开发过程,例如:正确地编辑您的API并制定过时策略。谷歌甚至对团队之间的服务使用征收内部费用。

也允许使用两种服务使用的代码库,只要您像处理第三方库一样处理这些库依赖项。

  

如何退回付款和发货数据?

根据聚合过程的复杂性,您可以拥有负责依赖于支付和运输服务的业务范围的第3服务,或者您拥有允许合并/拆分请求的专用聚合器组件从前端(有时作为API Gateway的一部分实现)。如果您的聚合逻辑很复杂,请创建专用服务,否则您可以使用通用aggregator