业务定制型异地多活架构设计
创始人
2024-04-10 19:21:04

1个原理

大道至简-异地多活核心原理

异地多活本质上是 CAP 中的AP

大道至深-CAP

粒度

CAP 关注的粒度是数据,而不是系统,需要根据不同业务的数据特点来设计异地多活

延迟

CAP 是忽略网络延迟的 ,但工程落地不可能做到零延迟

分区容忍

C和A只能取1个是在发生分区的时候,正常运行情况下,可以同时满足 CA

补救

放弃 != 无为,需要为分区恢复后做准备,包括人工修复数据

3大原则

原则1-只保证核心业务

在这里插入图片描述

不同业务的数据特性不同,无法全部做到异地多活

原则2-只能做到最终一致性

在这里插入图片描述

复制肯定有时间窗,抛弃实时一致性的幻想,PACELC 理论

原则3-只能保证绝大部分用户

在这里插入图片描述

不要为了0.01%的用户,而影响了99.9%的用户

4个步骤

业务分级

将业务按照某个维度进行优先级排序,优先保证TOP3 业务异地多活

维度说明
访问量登录>注册>修改密码
核心场景聊天>朋友圈>摇一摇
收入来源订单>搜索>编辑

数据分类

分析 TOP3 中的每个业务的关键数据特点,将数据分类

维度说明
数据修改量数据被修改的数量和频率,包括新增、删除、修改
一致性数据的一致性要求,例如:强一致性(余额、库存),最终一致性(动态)
唯一性数据的唯一性要求,例如:全局唯一(用户ID)、可重复(昵称)
可丢失性数据是否可丢失,例如:不可丢失(账户余额)、可丢失(微博、密码)
可恢复性数据是否可恢复,例如:用户恢复(微博)、系统提供恢复(密码找回)、内部恢复(编辑和运营重发)

数据同步

针对不同的数据分类设计不同的数据同步方式

在这里插入图片描述

多管齐下,“不择手段”,不要局限于存储系统同步

数据同步技巧

数据修改量一致性唯一性可丢失可恢复同步技巧
账号强一致性全局唯一数据库同步+消息队列同步
密码最终一致性不涉及数据库同步
余额强一致性不涉及数据库同步
库存强一致性不涉及数据库同步
微博、资讯、朋友圈动态最终一致性可重复是,用户或运营重发存储系统同步
Session最终一致性全局唯一是,系统重新生成重新生成+回源读取

异常处理

针对极端异常的情况,考虑如何处理,可以是技术手段或非技术手段

业务兼容

体验不好 优于 无法体验

  1. 数据短时间不一致:业务有损,例如微博、朋友圈
  2. 数据无法获取:转账申请,支付核对中

事后补偿

少量用户损失,用钱解决

  1. 礼包、红包
  2. 礼物、物品(暴雪炉石回档补偿)
  3. 保险赔偿

人工修正

尽力而为,减少损失

  1. 人工订正数据,达到最终一致性
  2. 重要事情说三遍:日志、日志、日志

5个技巧

消息队列同步

在这里插入图片描述

适合全局唯一的数据,因为可以覆盖;不适合余额之类的数据,因为数据修改无法做到幂等性

库存拆分

在这里插入图片描述

事务合并

在这里插入图片描述

例如:游戏玩家异地充值100,消费60,即使 IDC-B 的业务服务器不知道玩家的实际余额(在 IDC-A 的数据库中),业务也是可以继续处理的,具体实现逻辑如下:

  1. 正常情况下通过数据库同步来同步余额,对应上图的 IDC-A 到 IDC-B 的“余额同步”
  2. 异常情况下,IDC-A 机房挂掉,余额同步中断,可能会导致 IDC-A 和 IDC-B 的数据不同步,例如图中两个余额表的余额,IDC-A 是 30,IDC-B 是65
  3. 玩家到 IDC-B 想消费60块,无论 IDC-B 的余额表中是大于还是小于60,都不能直接消费,因为无法判断这个余额数据是否一致
  4. 玩家到 IDC-B 先充值100块,再消费60块,无论 IDC-B 的余额表中是大于还是小于60,都是允许的,此时 IDC-B 在临时事务表中记录两个事务
  5. IDC-A 恢复后,IDC-B 将临时事务表中的事务发给 IDC-A,IDC-A 进行合并,合并后的真实余额是70元,然后再通过“余额同步”这个通道将70元余额同步给 IDC-B 的余额表

实时改异步

在这里插入图片描述

适当容忍

在这里插入图片描述

业务上稍微放开一些约束,例如:电话会议系统允许欠费也能发起会议

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...