某订单流程依次调用库存、支付、积分和物流服务。架构师希望由一个流程协调器掌握执行顺序,并在支付失败时明确指挥库存回补。该方案属于()。
服务编排由中心协调器掌握业务流程,向参与服务发出命令并根据结果决定下一步或补偿动作。服务编舞没有中心流程控制者,各服务订阅事件、完成本地动作后再发布后续事件。
选项分析
正确。中心协调器负责步骤顺序和失败补偿,是服务编排的典型特征。
服务编舞依靠事件协作,没有一个组件掌握并指挥完整流程。
数据分片解决数据水平拆分和扩展问题,与跨服务流程协调无关。
边缘缓存用于降低访问时延,不负责事务步骤和补偿逻辑。
本题为什么容易错
“松耦合”不等于一定是编舞。编排中的参与服务也可以保持独立,只是流程控制集中在协调器;选择时应看控制逻辑放在哪里。
简短答案
订单跨多个微服务执行时,怎样区分服务编排和服务编舞,正确答案是 A(服务编排)。服务编排由中心协调器掌握业务流程,向参与服务发出命令并根据结果决定下一步或补偿动作。服务编舞没有中心流程控制者,各服务订阅事件、完成本地动作后再发布后续事件。
易混淆概念对比表
| 概念 | 本题判断 | 区别要点 | 记忆提示 |
|---|---|---|---|
| 服务编排 | 本题正确答案 | 正确。中心协调器负责步骤顺序和失败补偿,是服务编排的典型特征。 | 看到题干核心场景时优先联想到它 |
| 服务编舞 | 本题干扰项 | 服务编舞依靠事件协作,没有一个组件掌握并指挥完整流程。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 数据分片 | 本题干扰项 | 数据分片解决数据水平拆分和扩展问题,与跨服务流程协调无关。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
| 边缘缓存 | 本题干扰项 | 边缘缓存用于降低访问时延,不负责事务步骤和补偿逻辑。 | 看到该词不要急着选,先判断是否真正解决题干问题 |
本题易混淆选项怎么区分
- 服务编舞:服务编舞依靠事件协作,没有一个组件掌握并指挥完整流程。
- 数据分片:数据分片解决数据水平拆分和扩展问题,与跨服务流程协调无关。
- 边缘缓存:边缘缓存用于降低访问时延,不负责事务步骤和补偿逻辑。
知识点详解
服务编排把流程状态和步骤决策集中在协调器,便于观察和管理复杂补偿,但协调器需要高可用设计。服务编舞强调事件驱动和参与者自治,扩展性较好,不过参与者增多后,依赖关系和端到端排障会更困难。
备考速记
有指挥叫编排,无指挥靠事件接力叫编舞。
服务编舞在服务编舞场景中的作用
服务编舞在本题中的核心价值,是解决“某订单流程依次调用库存、支付、积分和物流服务。架构师希望由一个流程协调器掌握执行顺序,并在支付失败时明确指挥库存回补。该方案属于()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。
同类题怎么考
- 根据中心协调器判断编排或编舞
- 根据事件发布订阅判断协作方式
- 比较复杂Saga流程中两种方案的优缺点
服务编舞在系统集成项目管理工程师软考中的考法
软考选择题通常不会只考概念定义,还会把服务编舞放到服务编舞场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。
解题思路
可以把它想成两种排练方式。编排有一位指挥,库存、支付、物流都听指令;编舞没有总指挥,每个服务听到自己的事件就完成动作,再把新事件交给下一位。本题明确出现流程协调器,所以选编排。
考点定位
看题干有没有“中心协调器”。有中心统一掌握顺序和补偿,通常是编排;各服务只响应事件、彼此不知道完整流程,通常是编舞。
易错提醒
- 把容器编排与业务服务编排混为一谈
- 看到消息队列就直接判断为编舞
- 设计编排时忽略协调器的可用性和状态恢复
备考提示
- 画箭头时,所有命令经过一个中心的是编排;服务间围绕事件接力的是编舞。
- 复杂流程不仅看耦合,还要比较可观测性、故障定位和补偿管理难度。
你可能还想了解
- 服务编排是否一定同步调用?
- 服务编舞为什么没有中心协调器?
- Saga编排和编舞怎么选?
- 容器编排和业务流程编排一样吗?
本文小结
由中心协调器掌握库存、支付和物流的执行顺序并触发补偿,属于服务编排;无中心、靠事件接力才是服务编舞。