微服务设计没你想的那么难
如何展开
拿到一个新系统的开发任务,如果我们打算用微服务,我们考虑如何设计成微服务架构,怎么有效拆分业务逻辑,可以参考以下几个步骤。
- 建立统一语言 【领域驱动设计】
- 业务流程梳理
- 领域建模
- 服务划分
项目实战
以电商项目为实例,开展设计。
- 软件开发人员与领域专家通过核心功能提取业务核心名词,作为系统的统一语言。
- 业务流程: 用户注册完成登陆,进行商品查看,如果对商品感兴趣,可以查看商品详情。将商品加入购物车并下单。在下单过程中需要填写收获地址和支付信息,确认订单后,提交订单。当物流到达后用户确认收货。
- 领域建模 以数据的形式记录业务事件,按照时间序列进行组织,用“已发生”时代表达。
- 服务划分
根据梳理的界限上下文,将系统拆分为: 用户服务,商品服务,购物车服务,订单服务和物流服务。如果业务中抽象出交易模型,用户记录每次支付或者退款的业务,可独立出支付服务。