< 返回版块

Yuan YQ 发表于 2025-11-04 10:32

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

TikTok 把原来使用 Go 开发的一个高流量的、核心的支付 API 采用 Rust 重写,获得了 2 倍的性能提升,每年节省云成本约 30 万美元。

  1. 迁移动因:此次迁移的核心原因是 Go 语言服务在每秒查询量(QPS)达到 10 万时出现了严重性能瓶颈,这一问题由密集的序列化操作、垃圾回收停顿以及运行时开销共同导致。
  2. 重写成果:针对目标 API,重写后的 Rust 版本实现了多重优化 ——CPU 使用率降低 33%、内存消耗减少 72%,且 P99 延迟下降 76%。
  3. 实施策略:团队并未对服务进行全量重写,而是采用了针对性方案:仅迁移 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)框架,方便进行贝叶斯推断。例如,可基于观测数据更新先验分布,计算后验分布和后验预测概率。
  • 灵活性:分布不仅支持基本数值类型(如 f64f32),还能生成其他分布实例(如用 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 页