Twitter HOLD 住大选:少点 Ruby,多些 Java
在选举日当天,Twitter 服务器每分钟处理的推特数目为—— 327452 条!
当天,人们在 Twitter 上发布了 3100 万条跟选举相关的推特,而 Twitter 访问量阶段性飙升,一度达到每秒 15107 条推特。Twitter 是如何承受住前所未有的连续高访问量呢?
据 Arstechnica 报道,Twitter 基础架构副总裁 Mazen Rawashdeh 在博客上指出,这是因为公司技术团队在网站基础架构上做了一系列改进,包括逐步脱离 Ruby ,转向在服务器端 Java 虚拟机上运行由 Ruby、Java 和 Scala 结合的代码,同时调整 Ruby 的 runtime,以获得更好性能。
Rawashdeh 说:“作为迁离 Ruby 的一部分,我们重新配置了服务器,从移动客户端的访问将通过 Java 虚拟机堆栈,避免与 Ruby 堆栈同时进行。”
自 2009 年后,Twitter 使用被称为 “Ruby Enterprise Edition” 的 Ruby 修改版本。但是 Ruby 的解释器使 Twitter 的服务器处理负荷过重,特别是它的 “垃圾回收器(garbage collection)”。Twitter 团队一度对其进行优化,保证更好的运行性能,并开发自己的垃圾回收 “Kiji”。但现在公司也开始将开发努力转向 Java。