当前位置:首页 > 科技  > 软件

我们一起聊聊业务定制型异地多活架构设计

来源: 责编: 时间:2023-11-28 09:36:22 344观看
导读大道至简图片左图展示了一个强调一致性(C)和分区容忍性(P)的系统。在这种系统中,当网络分区(Partition)发生错误时,系统可能会拒绝操作以保持数据的一致性,牺牲了一部分可用性。例如,如果节点N1和N2无法通信(分区容忍性问题),系统

大道至简

图片图片zIv28资讯网——每日最新资讯28at.com

左图展示了一个强调一致性(C)和分区容忍性(P)的系统。在这种系统中,当网络分区(Partition)发生错误时,系统可能会拒绝操作以保持数据的一致性,牺牲了一部分可用性。例如,如果节点N1和N2无法通信(分区容忍性问题),系统可能会选择停止操作,确保任何读取都是一致的,即使这意味着某些操作不能完成。zIv28资讯网——每日最新资讯28at.com

右图展示的是一个强调可用性(A)和分区容忍性(P)的系统。在这种系统中,即使发生了分区错误,每个节点(N1和N2)仍会尽力响应用户的请求,保证服务的可用性。这可能导致数据的不一致,因为两个分区可能会独立响应并导致数据状态不同步。zIv28资讯网——每日最新资讯28at.com

异地多活架构设计的本质是平衡CAP定理中的“可用性(A)”和“分区容忍性(P)”,而通常在必要的情况下对“一致性(C)”做出一定程度的妥协。zIv28资讯网——每日最新资讯28at.com

大道至深 - CAP

粒度:zIv28资讯网——每日最新资讯28at.com

CAP 关注的粒度是数据,而不是系统,需要根据不同业务的数据特点来设计zIv28资讯网——每日最新资讯28at.com

异地多活。zIv28资讯网——每日最新资讯28at.com

延迟:zIv28资讯网——每日最新资讯28at.com

CAP 是忽略网络延迟的 ,但工程落地不可能做到零延迟。zIv28资讯网——每日最新资讯28at.com

分区容忍:zIv28资讯网——每日最新资讯28at.com

C和A只能取1个是在发生分区的时候,正常运行情况下,可以同时满足 CA。zIv28资讯网——每日最新资讯28at.com

补救:zIv28资讯网——每日最新资讯28at.com

放弃 != 无为,需要为分区恢复后做准备,包括人工修复数据。zIv28资讯网——每日最新资讯28at.com

原则1 - 只保证核心业务

图片图片zIv28资讯网——每日最新资讯28at.com

不同业务的数据特性不同,无法全部做到异地多活。zIv28资讯网——每日最新资讯28at.com

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

图片图片zIv28资讯网——每日最新资讯28at.com

复制肯定有时间窗,抛弃实时一致性的幻想zIv28资讯网——每日最新资讯28at.com

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

图片图片zIv28资讯网——每日最新资讯28at.com

异地多活设计步骤

1.业务分级:

将业务按照某个维度进行优先级排序,优先保证TOP3 业务异地多活。zIv28资讯网——每日最新资讯28at.com

2.数据分类:

分析 TOP3 中的每个业务的关键数据特点,将数据分类。zIv28资讯网——每日最新资讯28at.com

3.数据同步

针对不同的数据分类设计不同的数据同步方式。zIv28资讯网——每日最新资讯28at.com

4.异常处理

针对极端异常的情况,考虑如何处理,可以是技术手段或非技术手段。zIv28资讯网——每日最新资讯28at.com

步骤1 – 业务分级

访问量:zIv28资讯网——每日最新资讯28at.com

登录 > 注册 > 修改密码zIv28资讯网——每日最新资讯28at.com

核心场景:zIv28资讯网——每日最新资讯28at.com

聊天 > 朋友圈 > 摇一摇zIv28资讯网——每日最新资讯28at.com

收入来源:zIv28资讯网——每日最新资讯28at.com

订单 > 搜索 > 编辑zIv28资讯网——每日最新资讯28at.com

步骤2 – 数据分类

数据的修改量:zIv28资讯网——每日最新资讯28at.com

数据被修改的数量和频率,包括新增、删除、修改。zIv28资讯网——每日最新资讯28at.com

一致性:zIv28资讯网——每日最新资讯28at.com

数据的一致性要求,例如:强一致性(余额、库存)、最终一致性(动态、兴趣)。zIv28资讯网——每日最新资讯28at.com

唯一性:zIv28资讯网——每日最新资讯28at.com

数据的唯一性要求,例如:全局唯一(用户 ID)、可重复(昵称)zIv28资讯网——每日最新资讯28at.com

可丢失性:zIv28资讯网——每日最新资讯28at.com

数据是否可丢失,例如:不可丢失(账户余额)、可丢失(微博、密码)。zIv28资讯网——每日最新资讯28at.com

可恢复性:zIv28资讯网——每日最新资讯28at.com

数据是否可恢复,例如:用户恢复(微博)、系统提供恢复(密码找回)、内部恢复(例如编辑和运营重发)。zIv28资讯网——每日最新资讯28at.com

步骤3 – 数据同步

图片图片zIv28资讯网——每日最新资讯28at.com

多管齐下,“不择手段”,不要局限于存储系统同步!zIv28资讯网——每日最新资讯28at.com

步骤3 – 数据同步技巧

图片zIv28资讯网——每日最新资讯28at.com

步骤4 –异常处理

业务兼容:zIv28资讯网——每日最新资讯28at.com

体验不好 优于 无法体验。zIv28资讯网——每日最新资讯28at.com

1. 数据短时间不一致:业务有损,例如微博、朋友圈;zIv28资讯网——每日最新资讯28at.com

2. 数据无法获取:转账申请,支付核对中。zIv28资讯网——每日最新资讯28at.com

事后补偿:zIv28资讯网——每日最新资讯28at.com

少量用户损失,用钱解决。zIv28资讯网——每日最新资讯28at.com

1. 礼包、红包;zIv28资讯网——每日最新资讯28at.com

2. 礼物、物品(暴雪炉石回档补偿);zIv28资讯网——每日最新资讯28at.com

3. 保险赔偿。zIv28资讯网——每日最新资讯28at.com

人工修正:zIv28资讯网——每日最新资讯28at.com

尽力而为,减少损失。zIv28资讯网——每日最新资讯28at.com

1. 人工订正数据,达到最终一致性;zIv28资讯网——每日最新资讯28at.com

2. 重要事情说三遍:日志、日志、日志。zIv28资讯网——每日最新资讯28at.com

5大技巧1 - 消息队列同步

图片zIv28资讯网——每日最新资讯28at.com

适合全局唯一的数据,因为可以覆盖;不适合余额之类的数据,因为数据修改无法做到幂等性。zIv28资讯网——每日最新资讯28at.com

5大技巧2 - 库存拆分

图片zIv28资讯网——每日最新资讯28at.com

余额这么拆分可以吗?zIv28资讯网——每日最新资讯28at.com

通常会有一个中央权威的账户管理系统来处理余额,而不是在各个数据中心分别处理。这样可以简化一致性和同步的复杂性,尽管这可能牺牲一些响应时间和可用性zIv28资讯网——每日最新资讯28at.com

5大技巧3 - 事务合并

图片图片zIv28资讯网——每日最新资讯28at.com

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

1. 正常情况下通过数据库同步来同步余额,对应上图的 IDC-A 到 IDC-B 的“余额同步”;zIv28资讯网——每日最新资讯28at.com

2. 异常情况下,IDC-A 机房挂掉,余额同步中断,可能会导致 IDC-A 和 IDC-B 的数据不同步,例如图中两个余额表的余额,IDC-A 是 30,IDC-B 是65;zIv28资讯网——每日最新资讯28at.com

3. 玩家到 IDC-B 想消费60块,无论 IDC-B 的余额表中是大于还是小于60,都不能直接消费,因为无法判断这个余额数据是否一致;zIv28资讯网——每日最新资讯28at.com

4. 玩家到 IDC-B 先充值100块,再消费60块,无论 IDC-B 的余额表中是大于还是小于60,都是允许的,此时 IDC-B 在临时事务表中记录两个事务;zIv28资讯网——每日最新资讯28at.com

5. IDC-A 恢复后,IDC-B 将临时事务表中的事务发给 IDC-A,IDC-A 进行合并,合并后的真实余额是70元,然后再通过“余额同步”这个通道将70元余额同步给 IDC-B 的余额表。zIv28资讯网——每日最新资讯28at.com

5大技巧4 - 实时改异步

图片图片zIv28资讯网——每日最新资讯28at.com

5大技巧5 - 适当容忍

图片图片zIv28资讯网——每日最新资讯28at.com

业务上稍微放开一些约束,例如:电话会议系统允许欠费也能发起会议。zIv28资讯网——每日最新资讯28at.com

总结:zIv28资讯网——每日最新资讯28at.com

图片图片zIv28资讯网——每日最新资讯28at.com

zIv28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-34651-0.html我们一起聊聊业务定制型异地多活架构设计

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 同步与异步:程序执行方式的不同之处

下一篇: 双向绑定与单向数据流之争,Solid会取代React吗

标签:
  • 热门焦点
  • 6月安卓手机性价比榜:Note 12 Turbo断层式碾压

    6月份有一个618,虽然这是京东周年庆的日子,但别的电商也都不约而同的跟进了,反正促销没坏处,厂商和用户都能满意。618期间一些产品也出现了历史低价,那么各个价位段的产品性价比
  • 5月iOS设备好评榜:iPhone 14仅排第43?

    来到新的一月,安兔兔的各个榜单又重新汇总了数据,像安卓阵营的榜单都有着比较大的变动,不过iOS由于设备的更新换代并没有那么快,所以相对来说变化并不大,特别是iOS好评榜,老款设
  • JavaScript 混淆及反混淆代码工具

    介绍在我们开始学习反混淆之前,我们首先要了解一下代码混淆。如果不了解代码是如何混淆的,我们可能无法成功对代码进行反混淆,尤其是使用自定义混淆器对其进行混淆时。什么是混
  • Automa-通过连接块来自动化你的浏览器

    1、前言通过浏览器插件可实现自动化脚本的录制与编写,具有代表性的工具就是:Selenium IDE、Katalon Recorder,对于简单的业务来说可快速实现自动化的上手工作。Selenium IDEKat
  • 让我们一起聊聊文件的操作

    文件【1】文件是什么?文件是保存数据的地方,是数据源的一种,比如大家经常使用的word文档、txt文件、excel文件、jpg文件...都是文件。文件最主要的作用就是保存数据,它既可以保
  • 19个 JavaScript 单行代码技巧,让你看起来像个专业人士

    今天这篇文章跟大家分享18个JS单行代码,你只需花几分钟时间,即可帮助您了解一些您可能不知道的 JS 知识,如果您已经知道了,就当作复习一下,古人云,温故而知新嘛。现在,我们就开始今
  • 花7万退货退款无门:谁在纵容淘宝珠宝商家造假?

    来源:极点商业作者:杨铭在淘宝购买珠宝玉石后,因为保证金不够赔付,店铺关闭,退货退款难、维权无门的比比皆是。“提供相关产品鉴定证书,支持全国复检,可以30天无理由退换货。&
  • 大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • onebot M24巧系列一体机采用轻薄机身设计,现已在各平台开售

    onebot M24 巧系列一体机目前已在线上线下各平台同步开售。onebot M24 巧系列采用一体化轻薄机身设计,最薄处为 10.15mm,拥有宝石红、午夜蓝、石墨绿、雅致
Top