业务定制型异地多活架构设计
一个原理
粒度 cap关注的粒度是数据而不是系统,需要根据不同业务的数据特点设计异地多活
延迟 cap是忽略网络延迟的,但是实际工程中不可能做到0延迟
分区容忍 C A只能去一个是指在发生分区的时候,正常运行的系统CA同时满足
补救 需要为分区恢复后做准备,包括人工修复数据
三大原则
只保证核心业务
只能保证最终一致性
只能保证绝大部分用户
四个步骤
业务分级 访问量 核心场景 收入来源
数据分类
数据修改量 数据被修改的数量和频率
一致性 一致性要求 强一致性 or 最终一致性
唯一性 全局唯一 可重复
可丢失性 是否可以丢失
可恢复性 是否可以恢复
数据同步
异常处理
业务兼容
事后补偿
人工修正
五大技巧
消息队列同步 适合全局唯一数据,可以覆盖。不适合余额之类数据 不能做到幂等性。
库存拆分
事务合并
实时改为异步
适当容忍