公众号关注 “ 杰哥的IT之旅 ”, 选择“ 星标 ”, 重磅干货,第一 时间送达!
做者 | 雪姬
来自 | 移动支付网python
支付宝是属于第三方支付平台,是蚂蚁集团 旗下的支付平台系统,支付宝也是中国支付行业的一个标兵,不管是业务能力仍是产品创都引领者中国支付行业的前沿,做为支付业务的基础系统的复杂性和稳定性是支付业务是否可以及时快速安全处理的根本。mysql
本文收集了支付宝的系统架构图,包含:清算、客服、处理、资金、财务、等等。那么本文主要介绍Android支付宝钱包系统内部架构剖析。程序员
支付宝系统架构概况
典型处理默认
资金处理平台
财务会计
支付清算
核算中心
交易
柔性事务
消息系统
数据分布
数据缓存
支付宝的开源分布式消息中间件–Metamorphosis(MetaQ)sql
Metamorphosis (MetaQ) 是一个高性能、高可用、可扩展的分布式消息中间件,相似于LinkedIn的Kafka,具备消息存储顺序写、吞吐量大和支持本地和XA事务等特性,适用于大吞吐量、顺序消息、广播和日志数据传输等场景,在淘宝和支付宝有着普遍的应用,现已开源。数据库
Metamorphosis是淘宝开源的一个Java消息中间件。关于消息中间件,你应该据说过JMS规范,以及一些开源实现,如ActiveMQ和HornetQ等。Metamorphosis也是其中之一。apache
Metamorphosis 的起源是我从对linkedin的开源MQ–如今转移到apache的kafka的学习开始的,这是一个设计很独特的MQ系统,它采用pull机制,而不是通常MQ的push模型,它大量利用了zookeeper作服务发现和offset存储,它的设计理念我很是欣赏并赞同,强烈建议你阅读一下它的设计文档,整体上说metamorphosis的设计跟它是彻底一致的。缓存
可是为何还须要meta呢?安全
简单归纳下从新写出meta的缘由:微信
一、Kafka是scala写,我对scala不熟悉,而且kafka整个社区的发展太缓慢了;架构
二、有一些功能是kakfa没有实现,可是咱们却须要:事务、多种offset存储、高可用方案(HA)等;
三、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来使用的其余功能。
若是您以为这篇文章对您有点用的话,麻烦您为本文来个四连:转发分享、点赞、点在看、留言,由于这将是我写做与分享更多优质文章的最强动力!
本公众号所有博文已整理成一个目录,请在公众号后台回复「 」获取!
推荐阅读: 一、 什么是链路追踪?分布式系统如何实现链路追踪?
二、 程序员必知的 7 种软件架构模式
三、 成为架构师,必须掌握 10 种常见的架构模式!
四、 如何画出优秀的架构图?
五、 如何画出一张合格的技术架构图?
六、 一文读懂「分布式架构」
七、 微信支付软件架构,这也太牛逼了!
八、 支付宝的架构到底有多牛逼?
九、 今日头条的技术架构到底有多牛逼?
十、 蚂蚁金服的技术架构到底有多牛逼?关注微信公众号「 杰哥的IT之旅」,后台回复「 1024」查看更多内容,回复「 加群」 备注:地区-职业方向-昵称 便可加入读者交流群。 m ![]()
![]()
点个[在看],是对杰哥最大的支持!
本文分享自微信公众号 - 杰哥的IT之旅(Jake_Internet)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。