当前位置: 首页 > 科技观察

最全最强解析:支付宝钱包系统架构内部解析(架构图)

时间:2023-03-16 16:43:51 科技观察

支付宝系统架构概览典型处理默认资金处理平台财务核算支付结算核算中心交易灵活交易支付宝开源分布式消息中间件-蜕变(MetaQ))Metamorphosis(MetaQ)是一个高性能、高可用、可扩展的分布式消息中间件,类似于LinkedIn的Kafka,具有消息存储顺序写入、高吞吐量、支持本地和XA事务等特点,适用于大型throughput,Sequentialmessages,broadcasting,logdatatransmission场景广泛应用于淘宝和支付宝,现已开源。Metamorphosis是淘宝开源的一款Java消息中间件。关于消息中间件,大家应该听说过JMS规范,还有一些开源的实现,比如ActiveMQ、HornetQ。变态也是其中之一。Metamorphosis的由来是我从学习linkedin的开源MQ开始的——现在转入apache的kafka。这是一个独特设计的MQ系统,它使用拉机制而不是一般的MQ推模式。它广泛使用Zookeeper做服务发现和偏移量存储。我很欣赏也很认同它的设计理念。我强烈建议您阅读它的设计文档。总的来说,蜕变的设计是完全符合它的。但是为什么需要meta呢?简单总结一下我重写meta的原因:1.kafka是用scala写的,我对scala不熟悉,整个kafka社区发展太慢。2.有一些kakfa没有实现,但是我们需要的功能:事务,多偏移量存储,高可用解决方案(HA)等3.Meta有一些kafka独有的功能:文本协议设计,非常透明,支持类似以memcachedstats协议来监控broker的纯Java实现,从通信到存储,从客户端到服务端重新实现。提供事务支持,包括本地事务和XA分布式事务支持HA复制,包括异步复制和同步复制,保证消息的可靠性支持异步发送消息消费消息失败,支持本地恢复多偏移量存储支持,数据库,磁盘,zookeeper,可以自定义以支持组提交,提高数据可靠性和吞吐量。一系列支持消息广播方式的配套项目:python客户端、twitterstorm的spout、tail4j等。因此meta相比kafka的提升是巨大的。Meta在淘宝和支付宝上都得到了广泛的应用。现在支付宝每天有120亿条消息通过meta路由,淘宝每天也有几亿条消息。Meta适用于应用日志传输,高吞吐日志传输是Kafka的强项;消息广播功能,如广播缓存配置失效;数据序列同步功能,如mysqlbinlogreplication;分布式环境(broker、producer、consumer都是集群)消息路由,对顺序和可靠性要求极高的场景;其他功能用作一般MQ。

最新推荐
猜你喜欢