架构设计工作笔记005---微服务架构中的服务编排了解

技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152

当一个系统采用了微服务架构后,原有的业务可能并没有发生变化,但系统已被拆分成了很多新的微服务,与传统架构相比,微服务架构下会更依赖通过各微服务之间的协作来实现一个完整的业务流程,这种协作就是服务编排。编排涉及到RPC、分布式事务等,需要有完善的编排框架来支撑。

3种常见的微服务编排方式:

  1. Orchestration面向可执行的流程:通过一个可执行的流程来协同内部及外部的服务交互,通过流程来控制总体的目标、涉及的操作、服务调用顺序。
  2. Choreography面向协作:通过消息的交互序列来控制各个部分资源的交互,参与交互的资源都是对等的,没有集中的控制。
  3. API网关可以看作一种简单的接口聚合/拆分的方式:每笔业务到来后先到达网关,网关调用各微服务,并最终聚合/拆分需反馈的结果。

对编排流程、适配参数、调用链分析等方面思路的考量,构成微服务编排的框架思路:

  • 编排流程的思路:原子服务提供REST接口或者监听事件,通过流程编排这些原子服务来实现一个新的复杂
  • 服务编排流程的模型
    • 活动模型。例如(赋值、invoke(调用)、空)
    • 控制模型。例如(顺序、分支、循环、异常抛出、异常捕获、并行)流程编排完成之后,我们还需要给每个被编的服务提供正确的参数,是一个适配的过程。
  • 一个编排服务(abcd)由a、b、c、d服务编排而成,每个服务都会有自己的出参入参。适配的过程就是从上下文中给入参赋值以及将出参的结果写入到上下文中。
  • 编排服务在执行上下文的组成模型过程中,框架也会产生一部分数据,这一部分数据主要是流水号(id)和安全方面的考量。

你可能感兴趣的:(==系统架构==)