大家经常会听到分布式事务处理,分布式存储等等。但是,在大规模交易系统中,对于核心数据的部分,这些都是狗屎;害死了许多人。前前Paypal的CTO就是被这东东给害了。
由于交易量不断的增大,当时Paypal的核心数据库服务器的Load非常高,超过80%。为了解决问题,决定采用分布式存储,把核心数据的用户信息和Balance数据按用户名来分库存储在不同的地方,采用事务两阶段提交(Two-Phase-Commit)的方式来保证事务的一致性。
当时看来,这个解决方案很好,理论上可以完美的解决核心数据库压力太大的问题。上线前的测试也很好,没有出现任何问题。但是,,,
上线后不久,整个系统就被打死了。为啥?就是因为分布式存储和事务的两阶段提交(Two-Phase-Commit)。线下测试没问题,是因为测试情况下没那么大流量、事务的压力。上线以后就不一样了,一个需要两阶段提交的事务因为某种原因给堵住了,马上产生连锁效应。啪啦啪啦,一大批就给堵死了。整个数据库就给弄死掉了。巨大流量压力下,两阶段提交把数据库间通讯的流量给放大了许多倍。你系统想不死都难。。。但是这个问题,测试环境下你是测不出来的。呵呵。。
Paypal由于这个原因,系统死了几天;影响太大,那时的CTO也只好被迫辞职了。
扯了一些闲话,现在进入主题。那就是核心数据库到底应该有几个?是不是要分布式存储的?。。。答案是只有一个,不是分布式存储的,不能采用两阶段提交的方式解决事务一致性的问题。
有人会问?那你如何解决压力问题。。Paypal的交易量是每天几百万笔,交易量巨大,它的核心数据库就一个。支付宝的交易量也是每天几百万笔,据我所知,核心数据库也是一个(支付宝的和Paypal的有些不同,它系统的交易流和资金流是分开的,所以核心数据实际上是有两类)。。。呵呵,你的交易系统的流量能够有多大?压力能够有多大?。。显然在可以预见的范围内。你的核心数据库只需要一个。
那?如何解决数据库压力问题?。。方法其实很多,比如缓存机制,数据库分区等等。
其中很重要的一个方法就是读写分离。其实数据库读操作占了数据库操作的绝大部分;而且,并不是所有读操作都需要是实时的操作。这些操作完全可以从主数据库中移走,让它们访问镜像数据库或其它由主数据库导出的数据源。
另外一个重要的方法,当然是把不需要实时操作的表从主数据库里移走。这个好像显而易见,但是往往被设计者忽略了。简单有效的东西往往会被忽略。呵呵。
还有,大家不要巨大的交易量给吓住了。。你算算,就算是每天几百万笔的交易,每秒平均才多少笔交易。呵呵,也就100笔。。哈,你核心数据库和主表设计的好的话,1秒100笔的交易,能够有多大的压力?就算是峰值,乘以10倍,也就1000笔每秒。
所以,把不需要实时的表移走,把大部分读操作移走,把你的数据库设计得好一点;一个核心数据库绝对可以支持你超大规模的交易量。别自己把自己吓死,到处找好像很Fancy的东西来解决你的问题。
分享到:
相关推荐
Informal-Discussion-on-Architecture 架构师-架构漫谈
架构漫谈(一):什么是架构? 架构漫谈(二):认识概念是理解架构的基础 架构漫谈(三):如何做好架构之识别问题 架构漫谈(四):如何做好架构之架构切分 架构漫谈(五):什么是软件 架构漫谈(六):软件架构...
[NET 4.0面向对象编程漫谈 应用篇].金旭亮---高清版.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
系统架构设计漫谈.docx
[NET 4.0面向对象编程漫谈 基础篇].金旭亮--高清版.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
尿素期货上市漫谈-0715-中银国际期货-16页.pdf
漫谈电子商务竞争优势(ppt-41页).ppt
漫谈电子商务解决方案(ppt-34页).ppt
漫谈电子商务的影响(ppt-39页).ppt
全新系统架构--基于中台和容器
《大型分布式网站架构设计与实践》主要介绍了大型分布式网站架构所涉及的一些技术细节,包括SOA架构的实现、互联网安全架构、构建分布式网站所依赖的基础设施、系统稳定性保障和海量数据分析等内容;深入地讲述了...
漫谈兼容内核之一:ReactOS怎样实现系统调用 漫谈兼容内核之二:关于kernel-win32的对象管理 漫谈兼容内核之三:Kernel-win32的文件操作 漫谈兼容内核之四:Kernel-win32的进程管理 漫谈兼容内核之五:Kernel-win32...
FLASH设计制作技术漫谈-动漫设计毕业论文-范本.doc
「端点安全」跨越攻防的壁垒_漫谈企业内部安全蓝军建设实践 - 安全方案 企业安全 企业安全 NGFW 安全对抗 端点安全
高并发高可用的可伸缩的架构设计的原则 空间换时间 数据与计算 多维度可用 伸缩 优化资源利用
漫谈WebLogic-CVE-2020-25511
FPGA研发之道(7)架构设计漫谈(二)稳定压倒一切.docx
五年级语文上册 第六单元 23《漫谈沟通》课后练习 北京版-北京版小学五年级上册语文试题.docx
本文件提供信息安全基本知识,面向普通人群尤其是IT技术人员,通过案例和深入浅出的讲解,让听者掌握基本的信息安全知识、理念、理论和技能。适合于各类科技公司、院校和研究院所。