Rust分布式账务系统 - 胡宇
12.60 MB
27 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
中文(简体) | .pptx | 3 |
摘要 | ||
文档介绍了Airwallex公司使用Rust语言构建的分布式账务系统,强调其在Fintech领域的应用。系统设计采用了Event Sourcing、CQRS及Raft共识算法,确保高可靠性和正确性。其架构包括Gateway路由层、Marker事务层和Auticuro账户层,实现了高性能和水平扩展性。该系统通过事务层与账户层分离,以及无锁单线程模型,提升了交易吞吐量和降低了响应延迟。 | ||
AI总结 | ||
《Rust分布式账务系统 - 胡宇》总结:
### 项目介绍
Airwallex是一家跨境支付领域的Fintech公司。本次分享围绕其基于Rust构建的分布式账务系统"Auticuro"展开,重点介绍从设计到落地的经验和技术细节。该系统具备以下特点:
- **高性能**:超低延迟,支持100万TPS的高并发流量。
- **可靠性**:采用Raft共识算法,确保数据一致性和系统可用性。
- **可扩展性**:基于分布式事务和CQRS模式实现水平扩展。
- **可演化性**:业务逻辑与底层API解耦,便于快速迭代。
### 设计理念与架构
1. **系统架构**:
- **分层设计**:包括Gateway路由层、Marker事务层和Auticuro账户层。
- **CQRS模式**:读写分离,针对不同场景优化。
- **Event Sourcing**:事件溯源,记录系统所有状态变更,便于审计和回溯。
- **存算分离**:业务逻辑与底层存储解耦,提升灵活性。
2. **技术选型**:
- **底层存储**:RocksDB用于高性能数据存储。
- **共识算法**:基于raft-rs实现可靠的分布式共识。
- **事务处理**:采用TCC(两人次认证协议)确保分布式事务的ACID特性。
- **正确性与安全性**:Rust语言的内存安全和线程安全特性,避免data race和内存泄漏。
### 关键实现细节
1. **事件处理流程**:
- 接收转账请求,生成事件。
- 通过Raft共识确保事件的持久化。
- 处理共识后的事件,更新账户状态机,确保去重和余额更新的准确性。
2. **跨分区转账**:
- 使用有向无环图(DAG)表示任务依赖关系。
-Marker事务层负责执行转账计划,支持条件执行和任务调度。
3. **性能优化**:
- 关键路径采用无锁单线程,减少竞态条件和性能开销。
- 针对读写场景分别优化,提升系统吞吐量和响应速度。
### 项目成果与开源
- Auticuro已在生产环境中落地,具备高可用性和强一致性。
- 项目开源,社区支持活跃,提供详细文档和Slack交流群。
- 通过该项目,Airwallex积累了Rust在Fintech领域的落地经验,为后续技术演进提供了可靠基础。
### 总结
Auticuro分布式账务系统基于Rust语言和现代分布式架构,兼顾高性能、高可靠性和灵活性,适用于Fintech领域对资金交易的高要求。其设计理念和技术实现为金融级分布式系统提供了重要参考,同时通过开源回馈社区,推动Rust在高性能场景的应用。 |
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余
15 页请下载阅读 -
文档评分