
数据库层

伪服务
1. 简单DAO层封装,不包含公共业务封装业务逻辑分散,复制、粘贴, —个小需求n次初改和测;
2.缓存丢在调用方,业务方需要关注存储(用户侧、后台侧)

怎么办?

58速运微服务落地实践-数据拆分
1.数据双写 2.平滑迁移,不影响线上业务 3.数据一致性

58速运微服务落地实践 - 数据拆分
数据双写(从订单库中迁移出用户回访记录为例)

58速运微服务落地实践 - 数据拆分
并发情况,双写中的delete操作
正常:如果记录未迁移到新库中,只删除旧库记录即可;否则新、旧库都执行删除操作;

58速运微服务落地实践 - 数据拆分
并发情况,双写中的delete操作
潜在问题:回访服务新库中,会多出—些记录(该删除,却没有删除掉)
58速运实践:每隔n分钟,校验n分钟前进行迁移的数据,是否在新库中有且旧库中没有存在该情况,则删除新库中的记录;
58速运微服务落地实践 - 数据拆分
并发情况,双写中的insert操作



58速运微服务落地实践 - 伪服务改造
1.统—业务下沉为服务2.统——个订单服务

58速运微服务落地实践 - 服务改造
串行同步数据,性能问题

58速运微服务落地实践 - 服务改造
异步化&ES

总结
存在问题
耦合合度高、伪服务
58速运微服务落地实践
系统垂直拆分:
1.业务梳理; 2.沟通推进;
数据平滑迁移:
1.双写校验;
服务改造:
1.统—业务下沉为服务, —个地方改动即可;
2.不要为小概率事件,影响整体;
3.数据最终—致性实践;

