18 张图解支付宝钱包系统架构!

Wesley13
• 阅读 594
      公众号关注
  
      
      
      “
  
      
      
      杰哥的IT之旅
  
      
      
      ”,
  
      
      
      
 
     
     
       
      
      
      
   
       
       
       选择“
   
       
       
       星标
   
       
       
       ”,
   
       
       
       重磅干货,第一
   
       
       
       时间送达!
  
      
      
      
  
      
      
      
   
       
       
       
  
      
      
      

作者 | 雪姬
来自 | 移动支付网

支付宝是属于第三方支付平台,是蚂蚁集团 旗下的支付平台系统,支付宝也是中国支付行业的一个标兵,无论是业务能力还是产品创都引领者中国支付行业的前沿,作为支付业务的基础系统的复杂性和稳定性是支付业务是否能够及时快速安全处理的根本。

本文收集了支付宝的系统架构图,包含:清算、客服、处理、资金、财务、等等。那么本文主要介绍Android支付宝钱包系统内部架构剖析。

支付宝系统架构概况

18 张图解支付宝钱包系统架构!

典型处理默认

18 张图解支付宝钱包系统架构!

资金处理平台

18 张图解支付宝钱包系统架构!

财务会计

18 张图解支付宝钱包系统架构!

支付清算

18 张图解支付宝钱包系统架构!

核算中心

18 张图解支付宝钱包系统架构!

交易

18 张图解支付宝钱包系统架构!

柔性事务

18 张图解支付宝钱包系统架构!

18 张图解支付宝钱包系统架构!

18 张图解支付宝钱包系统架构!

18 张图解支付宝钱包系统架构!

消息系统

18 张图解支付宝钱包系统架构!

18 张图解支付宝钱包系统架构!

18 张图解支付宝钱包系统架构!

数据分布

18 张图解支付宝钱包系统架构!

数据缓存

18 张图解支付宝钱包系统架构!

支付宝的开源分布式消息中间件–Metamorphosis(MetaQ)

Metamorphosis (MetaQ) 是一个高性能、高可用、可扩展的分布式消息中间件,类似于LinkedIn的Kafka,具有消息存储顺序写、吞吐量大和支持本地和XA事务等特性,适用于大吞吐量、顺序消息、广播和日志数据传输等场景,在淘宝和支付宝有着广泛的应用,现已开源。

Metamorphosis是淘宝开源的一个Java消息中间件。关于消息中间件,你应该听说过JMS规范,以及一些开源实现,如ActiveMQ和HornetQ等。Metamorphosis也是其中之一。

Metamorphosis 的起源是我从对linkedin的开源MQ–现在转移到apache的kafka的学习开始的,这是一个设计很独特的MQ系统,它采用pull机制,而不是一般MQ的push模型,它大量利用了zookeeper做服务发现和offset存储,它的设计理念我非常欣赏并赞同,强烈建议你阅读一下它的设计文档,总体上说metamorphosis的设计跟它是完全一致的。

但是为什么还需要meta呢?

简单概括下重新写出meta的原因:

1、Kafka是scala写,我对scala不熟悉,并且kafka整个社区的发展太缓慢了;

2、有一些功能是kakfa没有实现,但是我们却需要:事务、多种offset存储、高可用方案(HA)等;

3、Meta相对于kafka特有的一些功能:

  • 文本协议设计,非常透明,支持类似memcached stats的协议来监控broker

  • 纯Java实现,从通讯到存储,从client到server都是重新实现;

  • 提供事务支持,包括本地事务和XA分布式事务;

  • 支持HA复制,包括异步复制和同步复制,保证消息的可靠性;

  • 支持异步发送消息;

  • 消费消息失败,支持本地恢复;

  • 多种offset存储支持,数据库、磁盘、zookeeper,可自定义实现支持group commit,提升数据可靠性和吞吐量;

  • 支持消息广播模式;

  • 一系列配套项目:python客户端、twitter storm的spout、tail4j等。

因此meta相比于kafka的提升是巨大的。meta在淘宝和支付宝都得到了广泛应用,现在每天支付宝每天经由meta路由的消息达到120亿,淘宝也有每天也有上亿的消息量。

Meta适合的应用:

  • 日志传输,高吞吐量的日志传输本来就是kafka的强项;

  • 消息广播功能,如广播缓存配置失效;

  • 数据的顺序同步功能,如mysql binlog复制;

  • 分布式环境下(broker,producer,consumer都为集群)的消息路由,对顺序和可靠性有极高要求的场景;

  • 作为一般MQ来使用的其他功能。

18 张图解支付宝钱包系统架构!

18 张图解支付宝钱包系统架构!


**如果您觉得这篇文章对您有点用的话,麻烦您为本文来个四连:转发分享、点赞、点在看、留言,因为这将是我写作与分享更多优质文章的最强动力!**

本公众号全部博文已整理成一个目录,请在公众号后台回复「


`m`」获取!
















 
 
 

  
  
  **推荐阅读:**
 
 
 









 
 
 

  
  
  

   
   
   


    


     


      


       


        


         


          


           


            


             


              


               


                


                 


                  

                    1、 
                   [什么是链路追踪?分布式系统如何实现链路追踪?](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fmp.weixin.qq.com%2Fs%3F__biz%3DMzAwMjg1NjY3Nw%3D%3D%26mid%3D2247501328%26idx%3D1%26sn%3Dc1463806653d49ece790011d3877f250%26scene%3D21%23wechat_redirect) 
                     

2、 程序员必知的 7 种软件架构模式

3、 成为架构师,必须掌握 10 种常见的架构模式!

4、 如何画出优秀的架构图?

5、 如何画出一张合格的技术架构图?

6、 一文读懂「分布式架构」

7、 微信支付软件架构,这也太牛逼了!

8、 支付宝的架构到底有多牛逼?

9、 今日头条的技术架构到底有多牛逼?

10、 蚂蚁金服的技术架构到底有多牛逼?

         关注微信公众号「 
        **杰哥的IT之旅**」,后台回复「 
        **1024**」查看更多内容,回复「 
        **加群**」 
        **备注:地区-职业方向-昵称** 即可加入读者交流群。 
       


      


     


    


   

  
  
  

 
 
 

======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

 ![](https://oscimg.oschina.net/oscnet/6f84dcb9-85eb-4150-87ed-dfc80f5879ff.jpg)









      
      
      
 
       
       
         
        
        
        
   
         
         
         
    
          
          
          
     
           
           
           
      
            
            
            
       
             
             
              
               
                
               
               
               点个[在看],是对杰哥最大的支持! 
               
             
      
            
            
            
     
           
           
           
    
          
          
          
   
         
         
         
  
        
        
        

      
      
      

本文分享自微信公众号 - 杰哥的IT之旅(Jake_Internet)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
2021 最顶级 React 组件库推荐
点上方蓝字关注公众号「前端从进阶到入院」作者丨MaxRozen译者丨王强策划丨小智AntDesign!(https://oscimg.oschina.net/oscnet/a85c35f23bd04e5da6a1e5e68a24119b.png)项目链接:AntDesignh
Stella981 Stella981
3年前
Android So动态加载 优雅实现与原理分析
背景:漫品Android客户端集成适配转换功能(基于目标识别(So库35M)和人脸识别库(5M)),导致apk体积50M左右,为优化客户端体验,决定实现So文件动态加载.!(https://oscimg.oschina.net/oscnet/00d1ff90e4b34869664fef59e3ec3fdd20b.png)点击上方“蓝字”关注我
可莉 可莉
3年前
2021 最顶级 React 组件库推荐
点上方蓝字关注公众号「前端从进阶到入院」作者丨MaxRozen译者丨王强策划丨小智AntDesign!(https://oscimg.oschina.net/oscnet/a85c35f23bd04e5da6a1e5e68a24119b.png)项目链接:AntDesignh
Wesley13 Wesley13
3年前
CSS 奇思妙想:超级酷炫的边框动画
点上方蓝字关注公众号「前端从进阶到入院」精选原创好文助你进入大厂文章转载自公众号「iCSS前端趣闻」今天逛博客网站shoptalkshow\1\,看到这样一个界面,非常有意思:!(https://oscimg.oschina.net/oscnet/9655b35af5a045999ff55c144a3f7c
Stella981 Stella981
3年前
Docker 架构原理、功能及使用
点击上方“杰哥的IT之旅”,选择“星标”公众号重磅干货,第一时间送达!(https://oscimg.oschina.net/oscnet/55595944998b405e9f939d9f9aa947d3.jpg)!(https://oscimg.oschina.net/oscnet/7f35f7e51704
Stella981 Stella981
3年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这