当前位置:首页 > 报告详情

胡宇-rust分布式账务系统.pptx

上传人: 2*** 编号:132081 2023-06-30 27页 12.60MB

1、第三届中国第三届中国Rust开发者大会开发者大会Rust构建分布式账务系统在Fintech公司落地Rust项目的经验分享Airwallex胡宇Airwallex我们是一家跨境支付领域的Fintech独角兽关于我们E2轮Fintech独角兽,业务遍布全球关于我们:Airwallex墨尔本墨尔本新加坡新加坡伦敦伦敦深圳深圳香港香港北京北京旧金山旧金山上海上海东京东京班加罗尔班加罗尔阿姆斯特丹阿姆斯特丹西安西安马来西亚马来西亚币种50+国家130+办公地点191300+员工提供高效,低成本的数字银行服务关于我们:Airwallex从设计架构到实现细节项目介绍分布式账务系统Fintech互联网互联网正

2、确性bug=资损bug不可怕,快速迭代可靠性丢数据=资损允许数据丢失性能超低延迟+高吞吐超高吞吐交易日志审计,监管调试使用分布式账务系统Fintech 领域中的软件与互联网软件的不同需求分析支付处理:转账冻资/解资账户限额批处理事务正确性:无双花或少付审计监管:交易日志不可篡改,交易历史可回溯条件事务:根据一定的条件决定事务执行与否高可用:在部分节点失效的情况下,依旧可以提供正确的服务超低延迟:实时交易,超低响应延迟水平扩展性:利用分布式事务实现钱包集群的的水平扩展,应对高达100万TPS的流量可演化性:业务逻辑与底层API解耦,当业务发生改变时,底层API不用改变分布式账务系统设计理念-Ru

3、st是我们可靠的基石分布式账务系统存算分离API解耦读写分离层级账号Rust事务层与账户层分离独立水平扩展CQRSEvent Sourcing针对读场景,写场景分别优化稳定的底层API灵活的顶层API树状结构聚合查询正确性:内存安全,线程安全可靠性:Raft共识算法 raft-rs 高性能:关键路径无锁单线程顶层架构Gateway 路由层业务API到底层API的翻译产生转账计划Marker 事务层使用业务id进行路由执行转账计划分发账户变动请求Auticuro 账户层 使用账户id进行分区执行账户变动请求更新账户余额分布式账务系统性能展示8 vCPUs*5 节点SSD 磁盘当 TPS=10K

4、时,延迟 P99 20ms分布式账务系统高吞吐,超低延迟账户层:Auticuro分布式账务系统账户层:Auticuro1.接受转账请求,转换成eventsTokio+Tonic分布式账务系统12341.接受转账请求,转换成events2.将events送入Raft共识,等待events被多数节点保存共识:基于raft-rs的可靠消息队列存储:Rocksdb with Rust账户层:Auticuro分布式账务系统12341.接受转账请求,转换成events2.将events送入Raft共识,等待events被多数节点保存3.处理被共识的events,更新状态机(账户表)去重&更新余额关键路径采

5、用无锁单线程账户层:Auticuro分布式账务系统12341.接受转账请求,转换成events2.将events送入Raft共识,等待events被多数节点保存3.处理被共识的events,更新状态机(账户表)4.回调完成请求账户层:Auticuro分布式账务系统1234事务层:Marker分布式账务系统A,B,C在不同分区执行一个事务的TCC转账计划转账计划有向无环图节点是一个任务边是依赖关系事务层 Marker 负责执行计划ACID 保证依赖控制条件执行调度账户变动请求跨分区转账分布式账务系统拥抱开源github:https:/ 技术选型心路历程对新技术持开放态度Kotlin:简洁,JVM

6、,GCRust 引入 Linux 内核Android 支持 Rust积极探索新技术对金融科技的改变对于核心领域系统,追求极致性能,使用 RustAirwallex业界业界共识共识厉兵秣马-人才培养 Rust 的吸引力更加容易吸引对技术有追求的人才Rust 学习曲线Java背景,C+背景的同事学习rust程序设计1-3 月可以熟练转型使用RustRust 与原有技术栈的融合Kotlin:偏业务,适合快速迭代Rust:偏基础架构,适合精心打磨gRPC:跨语言跨平台通讯心路历程真刀

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了Airwallex公司如何使用Rust构建分布式账务系统。Airwallex是一家跨境支付领域的Fintech独角兽,业务遍布全球130个国家,支持50多种货币。 在金融领域,软件必须具备极高的正确性,因为一点小错误就可能带来巨大的损失。因此,Airwallex的分布式账务系统需要满足以下需求:正确的账务处理、数据的可靠性、超低延迟、高吞吐、高可用性、可演化性。 为了满足这些需求,Airwallex采用了存算分离、读写分离、层级账号、API解耦等设计理念,并选择了Rust作为开发语言。Rust的内存安全、线程安全保证了正确性,Raft共识算法保证了数据可靠性,关键路径无锁单线程保证了高性能。 Airwallex的分布式账务系统分为三个部分:Gateway、Marker和Auticuro。Gateway是路由层,Marker是事务层,Auticuro是账户层。在性能测试中,当TPS为10K时,延迟P99小于20ms。 最后,Airwallex开源了Auticuro项目,并欢迎更多的开发者加入他们,共同探索Rust在金融科技领域的应用。
Rust如何构建分布式账务系统? Airwallex如何落地Rust项目? Rust在金融科技领域的应用有哪些?
客服
商务合作
小程序
服务号
折叠