专栏名称: Linux就该这么学
专注于Linux运维技术培训,让您学习的每节课都有所收获,订阅本号后可每天获得最新Linux运维行业资讯、最实用的Linux免费教程以及独家Linux考证资料,三十多万技术小伙伴的选择,Linux就该这么学!
目录
相关文章推荐
Linux就该这么学  ·  苹果要给系统重命名?从 iOS 18 ... ·  21 小时前  
Linux就该这么学  ·  OpenAI o3 AI 推理模型成关键 ... ·  21 小时前  
Linux就该这么学  ·  公司Rust团队全员被裁,只因把服务写得「太 ... ·  昨天  
Linux就该这么学  ·  Jetbrains 正式宣布免费! ·  昨天  
51好读  ›  专栏  ›  Linux就该这么学

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

Linux就该这么学  · 公众号  · linux  · 2025-06-02 08:11

正文

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


技术选型与基准测试: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( 最小可行产品 阶段也只需要实现基础功能: 查询某个用户是否在线、 用户在 应用的哪个区域; 断开连接 就视为离线;服务崩了就重启







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