架构思维
服务分拆
按业务功能进行服务拆分:
一 公共的服务, 例如:
1 登录和鉴权服务
2 分布式任务服务
3 缓存服务
4. 消息服务
5. 流程服务(例如activiti, flowable)
6. 消息触达的服务
7. 等等不与业务逻辑严重耦合的服务
二 按业务的不同进行拆分
例如不同的业务流程。 贷款服务和存款业务。 本身两个是单个单独的业务。
三 按照业务流程的不同环节进行拆分
例如电商的交易业务:
用户下单 -- 商家履约(发货到平台仓库) -- 物流 -- 用户签收(拒签) -- 给商家结算
针对面向的领域不同:
1 面向C端用户的交易。 创建交易订单
2 面向B端商家的商家侧。 包括商家履约单和商家结算单
3 面向物流的物流单。 对应物流订单
各个领域内创建自己的单据, 同时根据关心领域的相关单据通过消息的方式(解耦) 创建自己领域的单据或者更新自身的状态。