MST

星途 面试题库

面试题:微服务架构下服务拆分策略之业务边界识别

在微服务架构中,业务边界是服务拆分的重要依据。请阐述如何从业务流程、数据模型以及用户需求等方面来准确识别业务边界,进而实现合理的服务拆分?
18.8万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试

从业务流程识别业务边界

  1. 梳理业务流程:对整个业务进行详细的流程梳理,例如电商业务,从用户下单、支付、库存扣减、物流配送等环节进行逐一分析。通过绘制流程图,清晰呈现每个步骤的输入、输出以及涉及的操作。
  2. 确定独立业务环节:在业务流程中,寻找可以独立运行、不依赖其他环节完整执行的部分。比如在电商业务里,支付环节相对独立,它接收订单信息进行支付处理,可作为一个独立业务环节。
  3. 识别环节间交互:明确各业务环节之间的交互方式和频率。高频交互的环节可考虑合并在同一服务,低频交互的环节则倾向于拆分为不同服务。例如库存扣减和物流配送交互频率较低,可拆分服务。

从数据模型识别业务边界

  1. 分析数据关联:研究数据之间的关联关系,比如数据库表之间的外键关联。在社交平台中,用户表和好友关系表紧密关联,而用户表和系统配置表关联较弱。
  2. 确定数据聚合:将紧密关联的数据聚合在一起,作为一个服务的数据基础。如在电商中,订单数据、订单详情数据聚合在订单服务,形成一个数据整体。
  3. 考虑数据一致性:对于需要强数据一致性的部分,应放在同一服务。例如银行转账业务中,转出账户和转入账户的金额变动需在同一服务保证一致性。

从用户需求识别业务边界

  1. 收集用户需求:通过用户调研、市场反馈等方式,获取不同用户群体的需求。例如企业级软件,不同部门(销售、财务、生产)有不同需求。
  2. 分类需求:按照需求的功能特性、使用场景等进行分类。如电商中,C端用户关注商品浏览、购买,B端商家关注商品管理、订单处理,这是不同类别的需求。
  3. 基于需求拆分:以满足某一类特定需求为目标拆分服务。比如针对C端用户需求拆分为商品展示服务、购物车服务等,满足其商品浏览和购物需求。