Rust分布式账务系统 - 胡宇Airwallex 从设计架构到实现细节 项目介绍 分布式账务系统 Fintech 互联网 正确性 bug= 资损 bug 不可怕,快速迭代 可靠性 丢数据 = 资损 允许数据丢失 性能 超低延迟 + 高吞吐 超高吞吐 交易日志 审计,监管 调试使用 分布式账务系统 Fintech 领域中的软件与互联网软件的不同 需求分析 支付处理: ● 转账 ● 冻资 / 解资 ● 账户限额 批处理事务 正确性:无双花或少付 审计监管:交易日志不可篡改,交易历史可回溯 条件事务:根据一定的条件决定事务执行与否 高可用:在部分节点失效的情况下,依旧可以提供正确的 服务 超低延迟:实时交易,超低响应延迟 水平扩展性:利用分布式事务实现钱包集群的的水平扩 展,应对高达 100 万 TPS 的流量 可演化性:业务逻辑与底层 API 解耦,当业务发生改变 时,底层 API 不用改变 分布式账务系统 id 进行分区 ○ 执行账户变动请求 ○ 更新账户余额 分布式账务系统 性能展示 8 vCPUs * 5 节点 SSD 磁盘 当 TPS = 10K 时, 延迟 P99 < 20ms 分布式账务系统 高吞吐,超低延迟 账户层: Auticuro 分布式账务系统 账户层: Auticuro ● 1. 接受转账请求,转换成 events ○ Tokio + Tonic 分布式账务系统0 码力 | 27 页 | 12.60 MB | 1 年前3
Real world Rust
- Why and how we use Rust in TiKV支持 MVCC 无锁的快照读 ● 构建于 Raft 之上,不依赖分布式文件系统 ○ 更少的第三方依赖 ○ 更高的性能(低延迟) ● 配合 TiDB 使用,需要有健全的逻辑实现 SQL 层的下推算子 TiKV 的前置需求 ● 极高的性能要求,尽可能低延迟,而且延迟需要稳定 ● 设计分布式系统的逻辑,极其复杂 ○ Raft ○ Multi-Raft ○ 分布式测试框架 ● 和 C0 码力 | 29 页 | 506.53 KB | 1 年前3
Rust在物理引擎研发中的应用 崔汉青nocollide 9 ns 16 ns 1.8 Sphere – Sphere – coincide 7 ns 16 ns 2.3 Motphys 分布式物理引擎设计目标 0.02s内多次通信 苛刻的低延迟要求 高速内网环境下的线 性扩展 – 新增结点的 网络开销恒定 高可用和负载均衡 Message的RTT 可测量 Motphys 分布式物理 引擎网络架构 derive serde vs Point/Vector… • derive serde • 可自定义serializer/deserializer,灵活度高 • Pure rust win Pure Rust message 为了低延迟 • 序列化 • 不考虑版本兼容性 • 不带字段描述信息 • 仅支持primitives, Vec, 以及它们的组合嵌套 • 分布式物理引擎的计算和IO都很重要 • 计算线程和IO线程分离,各自绑定CPU核心 Motphys 特化网络层 自定义 pure rust message 自定义编解码协议 自动 ack 和可测量 RTT 的通信框架 一切为低延迟服务 分布式物理,突破单机算力的瓶颈 关于咪咕项目详细情况请参考:https://mp.weixin.qq.com/s/a_tvBU0wk9IwGYNqVK4EbA 咪咕-星际广场:10万人级别同屏同步元宇宙项目 0 码力 | 22 页 | 1.18 MB | 1 年前3
基于 Rust 语言编写的可编程的全球分布式 MQTT 服务器 王文庭点⾃动发现等问题 传统⽅案痛点 1)数据传输量⼤,中⼼压⼒⼤,⾼可⽤要求⾼ 2)数据发布与订阅都在中⼼,延迟⾼ 3)源站直接暴露 4)数据不好就近进⾏脱敏处理 5)数据不好就近进⾏存储 新⽅案优势 1)分摊中⼼压⼒ 2)降低延迟 3)隐藏源站 4)边缘计算 5)边缘存储 场景:设备就近接⼊/处理 ⼀句话概括,让设备具备边缘计算的能⼒。⽬前主要提供两种接⼊⽅式:0 码力 | 31 页 | 3.95 MB | 1 年前3
Rust 在算法交易中的实际应用与积极效应上海非凸智能科技有限公司(简称“非凸科技”)成 立于2018年,是国内领先的智能算法和交易系统服 务公司,专注于智能算法交易领域的研究和开发。 公司正基于Rust生态,结合机器学习、深度学习等新 兴技术,打造高效率、低延迟、高可靠、全内存高频 交易平台,满足自身在量化行业交易业务的同时也为 券商、量化私募等众多大型金融机构提供优质的算法 交易解决方案。 公司介绍 证监会信息技术系统备案 国家高新技术企业 科技型中小企业 lead 股票 互联网新闻 外 部 交 互 交易所引擎 Web客户端 下单指令 信息回报 母单/信息上传 统计信息查询等 数据获取 模型训练 信号预测 交易指令 交易指令 1. 低延迟高吞吐的一写多读消息队列 2. 基于共享内存,全用户态,零拷贝(配合 capnproto) 3. 针对 x86_64、AArch64 架构分别优化,CPU Cache 友好 Rust 进程间通信0 码力 | 18 页 | 3.49 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0是按照半秒的间隔到达的。它们在程序启动后两秒(2000 毫秒)后立刻一起到达。其次,程 序永远也不会退出!相反它会永远等待新消息。你会需要使用 ctrl-c 来关闭它。 让我们开始理解为何消息在全部延迟后立刻一起到达,而不是逐个在延迟后到达。在一个给定 的异步代码块,await 关键字在代码中出现的顺序也就是程序执行时其发生的顺序。 示例 17-10 中只有一个异步代码块,所以所有的代码线性地执行。这里仍然没有并发。所有 调用及其相关的 await point 是依次进行的。只有在此之后 while let 循环才开始执行 recv 调用上的 await point。 为了得到我们需要的行为,在接收每条消息之间引入休眠延迟,我们需要将 tx 和 rx 操作放 置于它们各自的异步代码块中。这样运行时就可以使用 trpl::join 来分别执行它们,就像在 计数示例中一样。我们再一次 await trpl::join 调用的结果,而不是它们各自的 17-13 中,我们克隆了 tx,在第一个异步代码块外面创建 tx1。我们像 第一个 tx 一样将 tx1 移动进代码块。接下来,将原始的 tx 移动进一个 新的 异步代码块,其 中会用一个稍微更长的延迟发送更多的消息。我们碰巧将新代码块放在接收消息的异步代码块 之后,不过也可以放在之前。关键在于 future 被 await 的顺序,而不是它们创建的顺序。 两个发送消息的异步代码块需要是 async0 码力 | 562 页 | 3.23 MB | 24 天前3
Comprehensive Rust(简体中文) 202412现场编码工作,因此讲台是不需要的。 4. 课程当天,请提早到教室进行准备。建议直接在笔记本电脑上运行 mdbook serve 来演示课程内 容(请参阅安装说明)。这样可以确保在更换页面时不会出现延迟,演示效果更好。使用笔记本运行还 可以在发现错别字时及时更正。 5. 让学员自己或以小组为单位解决练习问题。通常在上午和下午各安排 30-45 分钟的练习时间(包括 查看解答的时间)。请务必询问学 RwLock, Barrier and Once from std::sync; and Lazy for lazy initialisation. • once_cell crate 也提供了一些适用于延迟初始化的实用类型,它们与 spin::once::Once 所 用方法略有不同。 • Rust Playground 中包含 spin,因此本示例将以内嵌方式正常运行。 279 第 55 部分0 码力 | 359 页 | 1.33 MB | 10 月前3
Hello 算法 1.1.0 Rust版的成本是硬盘的几十倍,这使得它难以在消费者市场普及。 ‧ 缓存的大容量和高速度难以兼得。随着 L1、L2、L3 缓存的容量逐步增大,其物理尺寸会变大,与 CPU 核心之间的物理距离会变远,从而导致数据传输时间增加,元素访问延迟变高。在当前技术下,多层级 的缓存结构是容量、速度和成本之间的最佳平衡点。 图 4‑9 计算机存储系统 Note 计算机的存储层次结构体现了速度、容量和成本三者之间的精妙平衡。实际上,这种权衡普遍存在于0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版的成本是硬盘的几十倍,这使得它难以在消费者市场普及。 ‧ 缓存的大容量和高速度难以兼得。随着 L1、L2、L3 缓存的容量逐步增大,其物理尺寸会变大,与 CPU 核心之间的物理距离会变远,从而导致数据传输时间增加,元素访问延迟变高。在当前技术下,多层级 的缓存结构是容量、速度和成本之间的最佳平衡点。 图 4‑9 计算机存储系统 Tip 计算机的存储层次结构体现了速度、容量和成本三者之间的精妙平衡。实际上,这种权衡普遍存在于0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.0.0 Rust版的成本是硬盘的几十倍,这使得它难以在消费者市场普及。 ‧ 缓存的大容量和高速度难以兼得。随着 L1、L2、L3 缓存的容量逐步增大,其物理尺寸会变大,与 CPU 核心之间的物理距离会变远,从而导致数据传输时间增加,元素访问延迟变高。在当前技术下,多层级 的缓存结构是容量、速度和成本之间的最佳平衡点。 第 4 章 数组与链表 hello‑algo.com 85 图 4‑9 计算机存储系统 � 计算机的存储层次结构0 码力 | 383 页 | 17.61 MB | 1 年前3
共 10 条
- 1













