一、服务拆分的原则
- 单一职责,高内聚低耦合
- 服务粒度适中
- 以业务模型切入
-
演进式的开发
好的服务具备的特征
二、分析业务模型及服务拆分


三、微服务数据库的拆分

四、微服务如何实现数据的一致性:在微服务架构下每个服务对应一个数据库,这就在原来单体应用中对一个库的操作变成了跨服务数据库的操作,遇到有事务约束的场景,比如转账汇款,库存扣减,订单状态等,就从本地事务变成分布式事务,然而分布式事务并不适用于微服务。
4.1 在微服务架构下使用最终一致性来替代分布式事务。最终服务性指的是节点间的数据在一段时间后最终达到一致的状态,有两种模式来实现最终一致性:
- 可靠事件模式:一般借助消息队列和内部表来完成。指的是它的前序事件发生,后续事件就一定会发生。比如支付宝向余额宝转账,转账后余额宝一定会增加,但是可靠事件模式不能进行回滚。
-
补偿模式- sagas模型:saga是一系列有序的本地事务,每个本地事务通过更新数据库或者发送消息来触发下一个本地事务,如果本地事务失败,saga会有序的执行补偿事务,来回滚刚才的操作。特点是支持回滚。
可靠事件模式
补偿模式
网友评论