Post
Twitter 从 Rails 迁到 Java,暴露出高负载系统终究会回到底层能力
这次迁移不只是语言偏好变化,而是高负载系统最终会被性能、并发模型和运行时能力逼回更底层的工程约束。
看到 Twitter 从 Rails 迁到 Java 的消息,我当时的直觉是:这种迁移看起来像语言选择变化,实际反映的还是系统规模把技术栈逼回到底层能力的问题。
当时的迁移已经不只是某个边缘模块,而是连搜索库都开始从 Ruby on Rails 往 Java 方向走。更早在 2008 年,他们就已经把消息队列后端从 Ruby 迁到了 Scala,也就是先转向 JVM 生态,然后再进一步扩大范围。
这类演进路径其实很典型。早期业务快速增长时,高生产力框架可以极大降低开发成本;但当流量、并发、响应时间和系统稳定性变成核心矛盾之后,技术选型就会越来越受到底层运行时、线程模型、内存管理和工具链成熟度的约束。
所以我更愿意把这件事理解成:高负载系统最后还是会被迫面对一个问题,应用层效率和底层控制力,到底怎么权衡。Twitter 的迁移只是把这个矛盾显性化了。