支付宝架构到底有多牛逼?看完这篇你就明白了!.docxVIP

支付宝架构到底有多牛逼?看完这篇你就明白了!.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
领取宝架构到底有多牛逼?看完这篇你就明白了! 几乎任何规模的互联网公司,都有本人的系统架构迭代和更新,大致的演化路径都大同小异。最早一般为了业务快速上线,全部功能都会放到一个应用里,系统架构如图1所示。 ?? 这样的架构明显是有问题的,单机有着明显的单点效应,单机的容量和功能都是很局限的,而使用中小型机会带来大量的铺张。?随着业务进展,这个冲突渐渐转变为次要冲突,因而工程师们接受了以下架构。 ?? 这是整个公司第一次触遇到分布式,也就是对某个应用进行了水平扩容,它将多个微机的计算力量团结了起来,可以完胜同等价格的中小型机器。渐渐的,大家发觉,应用服务器CPU都很正常了,但是还是有很多慢恳求,究其缘由,是由于单点数据库带来了功能瓶颈。于是程序员们打算使用主从结构的数据库集群,如下图所示。 ?? 其中大部分读操作可以直接访问从库,从而减轻主库的压力。然而这种方式还是无法处理写瓶颈,写照旧需要主库来处理,当业务量量级再次增高时,写已经变成刻不容缓的待处理瓶颈。这时候,分库分表方案消灭了。 ? 分库分表不只可以对相同的库进行拆分,还可以进行对相同的表进行拆分,对表进行拆分的方式叫做水平拆分。不同功能的表放到不同的库里,一般对应的是垂直拆分(依据业务功能进行拆分),此时一般还对应了微服务化。这种方法做到极致基天性支撑TPS在万级甚至更高的访问量了。 然而随着相同应用扩展的越多,每个数据库的链接数也巨量增长,这让数据库本身的资源成为了瓶颈。这个问题产生的本质是全量数据无差别的共享了全部的应用资源,比如A用户的恳求在负载均衡的安排下可能安排到任意一个应用服务器上,因而全部应用全部都要链接A用户所在的分库,数据库连接数就变成笛卡尔乘积了。 在本质点说,这种模式的资源隔离性还不够彻底。要处理这个问题,就需要把识别用户分库的规律往上层移动,从数据库层移动到路由网关层。这样一来,从应用服务器a进来的来自A客户的全部恳求必定落库到DB-A,因而a也不用链接其他的数据库实例了,这样一个单元化的雏形就诞生了。 思考一下: 应用间其实也存在交互(比如A转账给B),也就意味着,应用不需要链接其他的数据库了,但是还需要链接其他应用。假如是常见的RPC框架如dubbo等,使用的是TCP/IP协议,那么等同于把之前与数据库建立的链接,换成与其他应用之间的链接了。为啥这样就衰退瓶颈了呢?首先由于合理的设计,应用间的数据交互并不巨量,其次应用间的交互可以共享TCP链接,比如A-B之间的Socket链接可以被A中的多个线程复用,而一般的数据库如MySQL则不行,所以MySQL才需要数据库链接池。 ? 如上图所示,但我们把整套系统打包为单元化时,每一类的数据从进单元开头就注定在这个单元被消化,由于这种彻底的隔离性,整个单元可以轻松的部署到任意机房而照旧能保证规律上的统一。 下图为一个三地五机房的部署方式。 ? 2.2 蚂蚁单元化架构实践 蚂蚁领取宝应当是国内最大的领取工具,其在双十一等活动日当日的领取TPS可达几十万级,将来这个数字可能会更大,这打算了蚂蚁单元化架构从容量要求上看必定从单机房走向多机房。另一方面,异地灾备也打算了这些IDC机房必需是异地部署的。 全体上领取宝也接受了三地五中心(IDC机房)来保障系统的可用性,跟2.1中描述的有所不同的是,领取宝将单元分成了三类(也称CRG架构): RZone(Region Zone):直译可能有点反而不好理解。实际上就是全部可以分库分表的业务系统全体部署的最小单元。每个RZone连上数据库就可以撑起一片天空,把业务跑的溜溜的。 GZone(Global Zone):全局单元,意味着全局只要一份。部署了不行拆分的数据和服务,比如系统配置等。实际情况下,GZone异地也会部署,不过仅是用于灾备,同一时辰,只要一地GZone进行全局服务。GZone一般被RZone依靠,供应的大部分是读取服务。 CZone(City Zone):顾名思义,这是以城市为单位部署的单元。同样部署了不行拆分的数据和服务,比如用户账号服务,客户信息服务等。理论上CZone会被RZone以比访问GZone高很多的频率进行访问。CZone是基于特定的GZone场景进行优化的一种单元,它把GZone中有些有着”写读时间差现象”的数据和服务进行了的单独部署,这样RZone只需要访问本地的CZone即可,而不是访问异地的GZone。 “写读时间差现象”是蚂蚁架构师们依据实践统计总结的,他们发觉大部分情况下,一个数据被写入后,都会过足够长的时间后才会被访问。生活中这种例子很常见,我们办完银行卡后可能很久才会存第一笔钱;我们创建微博账号后,可能想半天才会发微博;我们下载创建淘宝账号后,可能得扫瞄好几分钟才会下单买东西。当然了这些例子中的时间差远远超过了系统同步时间。一

文档评论(0)

bob157641554 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档