好顺佳集团
2022-08-01 09:04:21
3850
内容摘要:银行的“账本”在哪里?曾几何时,银行用手记账。计算机出现后,可以通过计算机实现人工记账,所以账本就变成了数据库。但是,如果“账本”只存储在一个或多个中心化存储中,一旦发生极端灾难,用...
银行的“账本”在哪里?
曾几何时,银行用手记账。计算机出现后,可以通过计算机实现人工记账,所以账本就变成了数据库。但是,如果“账本”只存储在一个或多个中心化存储中,一旦发生极端灾难,用户的“账本”仍然会丢失。
如何让“账本”在极端灾难场景中不丢失?今天给大家介绍一下网商银行的“账本”放在哪里。
01
数据库成为在线“账本”
60年前,如果你存款,柜员会给你一张手写的存款单并盖章。柜员手动将账户记录在“账本”上。等待取款时,将存款单交给柜员,柜员会查账。检查存款证明和分类帐,然后将钱退还给您。这是银行过去手工记账的方式。
人工记账时代,以账簿为主。账本只有一本,用户可以随身携带,不能兑换。一般情况下,账本只有一本,一旦发生火灾、水灾、意外丢失等,客户的钱很难拿回。
不仅如此,在这些业务柜台,客户只能使用柜员填写的存折,也就是只能进行存取款业务。由于缺乏数据连通性,无法跨营业厅办理存折,也无法使用借记卡。如果需要转账或汇款,就得去更大的机构办理,非常不方便。
电脑出现后,在电脑上实行人工记账,账本就变成了数据库。
业务网点之间的数据互联互通,用户不仅可以随时在不同网点进行存取款、转账、汇款,而且信息实时同步。有了这些线上“账本”数据,银行也可以全面了解你的资产,让你合理贷款。
02
如何保证网上“账本”不丢失?
如果“账本”只在一个地方,那么当那个地方发生重大灾难时,“账本”可能会损坏。为了保证在线“账本”的安全,通常的做法是制作多份副本,并尽可能将它们存放在多个相对较远的地方。远处。因为只要其中一个“账本”完好无损,就可以继续为客户服务,而基于这个“账本”,其他损坏的“账本”也可以恢复。
在网商银行成立之初,我们就决定每三到五次进行一次“断纤”演练。这背后,其实是由OceanBase数据库的高可用和快速恢复支撑的。
分布式数据库在理论上已经存在了很长时间,并没有在生产中实现。虽然可以降低成本,但缺点也很突出:仅靠普通PC无法达到财务级别的稳定性。机器罢工容易产生多米诺骨牌般的倒塌效应,这个缺点被认为是世界级的问题。
MyBank 是第一家使用 OceanBase 的银行。 OceanBase 解决分布式数据库稳定性的方法之一是同时备份每个数据的多个副本,并将它们存储在位于不同数据中心的多个服务器上。假设一台服务器发生故障的概率是千分之一,那么同时发生两次故障的概率可能是百万分之一,同时发生三个故障的概率是十亿分之一。
03
如何保证不同线上的多个“账本”相同?
解决了分布式数据库的问题,如何保证不同数据库输出的结论一致?
这里有一个有趣的比喻,跟大家分享一下“拜占庭将军”的故事——
在古代,拜占庭帝国的将领们必须一致同意才能决定是否攻击某个敌人。军队。
但现实是,这些将领不在同一个地理位置,其中可能有叛徒。例如,当将领希望促成进攻行动时,叛徒迷惑其中一位将领不采取进攻行动,或者当一位将领叛逃时,行动结束。进攻也注定要失败,因为只有所有将领齐心协力,齐心协力,才能取得胜利。
但是,如果达成“共识协议”,如果有11名将军,中间有间谍,则有9名一个忠诚的将领,5位判官进攻,4位判官撤退,2个奸细恶意判官撤退,但少数服从多数,这11位将军仍需保持一致状态,共同行动。
拜占庭假设是对现实世界的建模,其中计算机和网络可能由于自然灾害、硬件错误、网络拥塞或断开连接、恶意攻击和人为错误而出现不可预测的行为。
(图:三地五中心不同副本数据库之间的“一致性协议”)
这种“一致性协议”也适用于多个“账本”。如果其中一个在线“账本”出现问题,但如果其他“账本”输出的结论一致,那么大部分“账本”判断结果仍然执行,这样用户看到的“账本”就会始终准确。
目前,网商银行在三个城市保存了五份“账本”,三者之间的距离超过一千公里。这样,即使一个城市的“账本”出现问题,也无法使用。 ,另一个城市的“账本”可以在1分钟内为客户服务。
作者 杨向和
网商银行架构师,负责存储机箱。
参与了网商银行从0到1核心系统的研发,搭建了全行的数据库架构。
上一篇:代账费用按年还是怎么支付
下一篇:代账费如何做账
张总监 13826528954
限时领取创业礼包
0元公司注册
地址安全挂靠
名称、法人、股权等变更
在线免费核名
所有服务
您的申请我们已经收到!
专属顾问会尽快与您联系,请保持电话畅通!