性能提升 2 倍、节省 30 万美元:采用 Rust 重写关键服务的案例研究

TikTok 把原来使用 Go 开发的一个高流量的、核心的支付 API 采用 Rust 重写,获得了 2 倍的性能提升,每年节省云成本约 30 万美元。
- 迁移动因:此次迁移的核心原因是 Go 语言服务在每秒查询量(QPS)达到 10 万时出现了严重性能瓶颈,这一问题由密集的序列化操作、垃圾回收停顿以及运行时开销共同导致。
- 重写成果:针对目标 API,重写后的 Rust 版本实现了多重优化 ——CPU 使用率降低 33%、内存消耗减少 72%,且 P99 延迟下降 76%。
- 实施策略:团队并未对服务进行全量重写,而是采用了针对性方案:仅迁移 CPU 消耗最高的组件,其余部分仍保留原 Go 语言服务的完整实现。
该案例研究证明,Rust 语言具备解决特定高优先级性能问题的能力,且无需采取 “全有或全无” 的迁移方式。它为 “精准运用 Rust 优化现有系统以实现显著效率提升” 提供了切实可行的实践蓝图。
原文:https://wxiaoyun.com/blog/rust-rewrite-case-study/
rv v0.19.0 发布
rv 专注于提供概率分布相关的基础功能,适用于概率统计、贝叶斯分析和机器学习等领域。以下是对该仓库的详细介绍:
核心功能
- 概率分布支持:包含多种常见概率分布(如 Beta、Bernoulli、Gaussian、Categorical 等),支持采样(
draw/sample)、概率密度计算(ln_f)等核心操作。 - 贝叶斯分析:提供共轭先验(Conjugate Prior)框架,方便进行贝叶斯推断。例如,可基于观测数据更新先验分布,计算后验分布和后验预测概率。
- 灵活性:分布不仅支持基本数值类型(如
f64、f32),还能生成其他分布实例(如用 Beta 分布采样得到 Bernoulli 分布的参数)。 - 扩展特性:通过特征标志(feature flags)支持额外功能,如
serde1用于序列化,arraydist依赖nalgebra支持数组分布,process提供高斯过程相关功能。
Github: https://github.com/promised-ai/rv
Stately v0.3.0 发布
Stately v0.3.0 刚刚发布了。这是一个用于管理应用状态的框架,内置实体关系功能,并支持 REST API 生成(目前支持 axum,若有需求也可扩展支持其他框架)。
Stately 为实体集合提供类型安全的 CRUD 操作,包括:
- 实体关系 —— 使用
Link<T>通过 ID 或内联方式引用实体 - 外部类型支持 —— 使用外部 crate 中的类型,且不会违反孤儿规则
- 自动生成 REST API—— 可选的 Axum 集成,附带 OpenAPI 文档
- 事件驱动的中间件 —— 用于数据库集成的中间件
- UUID v7 标识符 —— 开箱即用地提供可按时间排序的标识符
Github: https://github.com/georgeleepatterson/stately
--
From 日报小组 Yuan YQ
社区学习交流平台订阅:
1
共 0 条评论, 1 页
评论区
写评论还没有评论