专栏名称: 算法专栏
算法专栏,每日推送。算法是程序员内功,分享算法知识、文章、工具、算法题、教程等
目录
相关文章推荐
小米汽车  ·  小米汽车答网友问(第156集) ·  6 小时前  
小米汽车  ·  #小米YU7#铠甲笼式钢铝混合车身全面升级: ... ·  13 小时前  
小鹏汽车  ·  23.58万元,小鹏G7预订指南! ·  2 天前  
学长小谭考研  ·  关于「考研博主终将消亡」 ·  2 天前  
学长小谭考研  ·  关于「考研博主终将消亡」 ·  2 天前  
51好读  ›  专栏  ›  算法专栏

公司Rust团队全员被裁,只因把服务写得「太稳定」:“项目0故障、0报警,那养着3个Rust工程师没...

算法专栏  · 公众号  ·  · 2025-06-01 18:00

正文

请到「今天看啥」查看全文


技术选型与基准测试:Rust 脱颖而出

起初, 负责该项目的团队倾向用 Rust, 不过管理层 对此 有疑虑,便要求用不同的语言写几个原型服务做个对比测试。

于是, 团队 决定 用 Elixir、Rust、Ruby 和 Node.js 分别写一个原型 —— 不知为何 ,当时 Go 没有列入候选 Drogus 猜测可能是因为那时他在休假所以没人提。

几天后,四个原型都写完了,他们 开始对 进行性能测试。 测试结果 属于是意料之中

  • Rust 版本速度最快、内存占用最低

  • Elixir 次之;

  • Node.js 表现还可以,但受限于单线程运行时

  • Ruby 最慢。

值得注意的是,Rust 版本最初存在也一个小 bug:开发者用 async futures 给客户端发消息时,会遍历所有客户端来获取发送通道列表,这在高负载下会阻塞运行时几秒。 不过这个问题属于实现细节,对熟悉 Rust 的人来说并不难修复。

但由于写这个 Rust 原型的人是第一次写 Rust,经验不足, 而其他语言的原型都是由有经验的开发者完成的—— 所以,即使有些小 bug ,也不是不能理解


图片

从原型到正式上线,Rust 表现亮眼

测试完成后,团队成员讨论了各种语言的性能表现、易用性、在公司内部的适配性等等,最终再次选择了 Rust。很有意思的一点是,写 Rust 原型的那位开发者原本更偏好 Elixir(因为他用过),但实际写完后, 投票支持了 Rust。

原因很简单: Rust 太灵活了。

基于评估结果和团队判断,公司最终决定由 Rust 实现该实时服务。而出于项目进度考虑,原本应由独立团队开发的任务,转交给了有 Rust 经验 Drogus ,并由他与 Rust 原型作者合作开发。

为了赶进度, Drogus 决定 采用一个类似于数据库的极简设计。 在 Rust 中处理 10 万 连接不算难事,MVP( 最小可行产品 阶段也只需要实现基础功能: 查询某个用户是否在线、 用户在 应用的哪个区域;







请到「今天看啥」查看全文