业务定制型异地多活架构设计
一个原理
粒度 cap关注的粒度是数据而不是系统,需要根据不同业务的数据特点设计异地多活
延迟 cap是忽略网络延迟的,但是实际工程中不可能做到0延迟
分区容忍 C A只能去一个是指在发生分区的时候,正常运行的系统CA同时满足
补救 需要为分区恢复后做准备,包括人工修复数据
三大原则
只保证核心业务
只能保证最终一致性
只能保证绝大部分用户
四个步骤
业务分级 访问量 核心场景 收入来源
数据分类
数据修改量 数据被修改的数量和频率
一致性 一致性要求 强一致性 or 最终一致性
唯一性 全局唯一 可重复
可丢失性 是否可以丢失
可恢复性 是否可以恢复
数据同步
异常处理
业务兼容
事后补偿
人工修正
五大技巧
消息队列同步 适合全局唯一数据,可以覆盖。不适合余额之类数据 不能做到幂等性。
库存拆分
事务合并
实时改为异步
适当容忍
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性