尽管最近又拿到了一笔风险投资,但 Twitter 似乎遇到了中年问题,前几天居然因为一台 DB Crash(原因是居然是连接数过多!) 而导致禁止了很多关键功能。接连几天,服务都是及其不稳定。或许是 DB 崩溃问题带来的雪球效应吧。因为这一系列问题的困扰,用户怨声载道,Twitter 倒是做了”改进”: 开辟了一个子站点用于即时报告各项服务的状态问题。值得称道的是,Twitter 开发 Blog 上回答用户的技术询问倒是很端正的态度。
现在技术问题成了 Twitter 进一步发展的极其严重的制约了,在所有的 Web 2.0 站点里这倒是比较少见的。尽管 Twitter 过去号称把性能提升了 100 多倍,看来还不够哇。 前一段时间,有小道消息说 Twitter 准备放弃 RoR ,倒是 Twitter 忙不迭的辟谣。
面对很恼火的用户,Twitter 也承认架构上的一些问题,”Twitter is, fundamentally, a messaging system. Twitter was not architected as a messaging system” ,而最初的架构也是面向内容管理系统而不是消息系统的,这需要一个转变过程。一直让我比较奇怪的是 Twitter 似乎没有专门的 DBA ,而是开发工程师兼任,如果 MySQL 不是瓶颈倒没问题的(有很多 Web 2.0 大站就不用专门 DBA 的),可如果 DB 是瓶颈,那就比较麻烦了。DB 如此,其它环节也是如此。
有意思的是,随着互联网应用的飞速发展,Performance Engineer / Scaling Engineer 这样的新职位需求都出来了。这是个有挑战的活儿,值得尝试一下。
实在无聊,这只是一篇随笔罢了。
–EOF–
延伸阅读:Twitter 在自救
有更多信息来介绍Twitter的技术团队吗? 我想ROR只是其中一个方面。。
@Jay,
这个…和 Twitter 的人不熟啊
我也不过是顺藤摸瓜反向找一些资料罢了
据说Twitter,只有三个db server,一个master, 两个slave, 没有dba, 没有failover?
Crash 的那台 DB 叫做 db006 ,怎么也要有 7 台 DB 吧