分布式金融架构课
任杰
eBay支付账务系统负责人,前蚂蚁金服架构师
立即订阅
1573 人已学习
课程目录
已更新 25 讲 / 共 30 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 如何成为金融级人才?
免费
金融业务与系统 (6讲)
01 | 业务初探:扫了二维码之后发生了什么?
02 | 原理解读:如何理解第三方支付的业务逻辑和系统组件?
03 | 产品大观:不同金融业务都有哪些技术实现要点?
04 | 领域驱动设计(上):如何设计金融软件顶层架构?
05 | 领域驱动设计(下):如何设计统一的金融业务模型?
答疑集锦(一) | 思考题解析与外汇架构知识拓展
系统正确性保障 (7讲)
06 | 计算输入的正确性:怎么选择正确时间的数据?
07 | 计算过程的正确性:如何设计正确的数据处理架构?
08 | 计算结果的正确性:怎么保证计算结果是正确的?
09 | 数据传输的质量:金融业务对数据传输有什么要求?
10 | 数据存储的合理性:金融业务可以不用关系型数据库吗?
11 | 系统优化:如何让金融系统运行得更快?
答疑集锦(二) | 思考题解析与账务系统优化
分布式正确性及高可用 (10讲)
12 | 正确性分级(上):单机无备份有哪几种不同的一致性?
13 | 正确性分级(中):多机无容灾有哪几种不同的一致性实现?
14 | 正确性分级(下):多机有容灾有哪几种不同的一致性?
15 | 分布式正确性的存在性(上):什么情况下不存在分布式共识算法?
16 | 分布式一致性(下):怎么理解最简单的分布式一致性算法?
17 | 正确性案例(上):如何实现分布式的事件溯源架构?
18 | 正确性案例(中):常见分布式数据方案的设计原理是什么?
19 | 正确性案例(下):如何在运行时进行数据系统的动态分库?
20 | 容灾(上)如何实现正确的跨机房实时容灾?
21 | 容灾(下):如何通过混沌工程提高系统稳定性?
春节策划 (1讲)
春节策划第1期 | 分布式金融系统知识,你掌握了多少?
分布式金融架构课
15
15
1.0x
00:00/00:00
登录|注册

19 | 正确性案例(下):如何在运行时进行数据系统的动态分库?

任杰 2021-02-05
你好,我是任杰。这一讲我想和你聊一聊如何在运行时进行数据系统分库。
如果你需要进行数据系统分库,那么恭喜你,你的业务量又上了一个新的台阶。但是随之而来也有一个坏消息,那就是分库的过程想做得好的话会很困难。如果做得不好,可能你在每次集群的扩容前,都需要暂停业务,这样会带来一定的经济损失。
所以,为了解决这个问题,我们今天就来学习一下怎么做动态扩容。

支持分库功能的架构目标分析

在我们学习如何实现动态分库之前,先来看看我们的设计目标是什么。
最原始的分库方法是先将业务暂停,这样就不会有人修改数据系统。接着要完成数据系统备份,以防出错后回滚所有操作。然后按照预定的逻辑将数据切分到不同的机器上。如果测试结果没问题,那么就重启业务。
虽然这个方法清晰简单,但是带来的问题是业务需要暂停很久的时间。这个过程的示意图如下:
所以,分库并不是一个不能解决的问题,只是我们希望分库的时间越短越好。那前面说的这几个步骤在时间上还能不能再优化一下呢?其实也是可以的。
数据系统一般都会提供一个异步备份的容灾配置,你可以多备份一台机器。虽然这台备份机并没有所有数据,但是大部分数据都在,所以当你把业务系统停掉之后,只需要把备份机和主机之间的差别补全就可以了。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《分布式金融架构课》,如需阅读全部文章,
请订阅文章所属专栏
立即订阅
登录 后留言

精选留言(2)

  • tt
    集群A接收并执行分库命令的结果是改变集群 A 能处理的消息类别,也就是改变集群 A 的内部配置。从此以后集群 A 将不能再处理今后属于集群 B 处理的事情。

    这个改变内部配置的操作是幂等的,收到多次这样的指令,只要和自己内部维护的状态比较一下,如果已经处于这样的状态,跳过应该就行了。
    2021-02-07
  • webmin
    集群A在处理命令时有幂等性机制来保证,所以不会影响分库过程的正确性。
    2021-02-05
收起评论
2
返回
顶部