主题:【原创】解剖Twitter 【1】 -- 邓侃
共:💬68 🌺272
复 花一个再提问
2. apache把短信和user id转发给mongrel rails之后,处于同步等待状况。
为什么要采用这种方式?这样的话在mongrel回复之前,apache的这个连接所在的进程/线程是不能处理其他请求的,就会成为系统的瓶颈。
我的理解是,Apache空循环进程的目的是为了push。把最新更新的内容,及时push给用户。
或许有些人会问,为什么不用Java Grizzly那样的NIO的办法,这样就不需要占用一个进程,等待新更新的内容。
我的理解是,用Java Grizzly或者Erlang Yaws那样的NIO式的Web Server,的确可以节省很多资源,但是却达到同样的push的功能。
为什么Twitter不用Java Grizzly呢?看来主要还是因为Ruby on Rails。Twitter早年用了RoR,这样就绑定了Apache Web Server。想替换Apache,首先必须彻底舍弃RoR。
所以,明明知道Apache的效率不高,但是还是用它,是“历史”遗留问题,不是技术优化的考虑。
- 相关回复 上下关系8
🙂qq空间 1 zt371 字266 2009-11-10 16:59:26
🙂【原创】【5】数据流与控制流 18 邓侃 字4372 2009-11-05 05:21:18
🙂花一个再提问 季侯 字582 2009-11-15 05:14:37
🙂Apache进程空循环的问题
🙂多谢邓兄解惑,花一个。 季侯 字0 2009-11-15 18:48:03
🙂送宝~ 北京阿新 字137 2009-11-08 22:02:23
🙂剖析的简单明了。好文 投入 字0 2009-11-04 22:32:10
🙂谢谢:作者意外获得【西西河通宝】一枚推荐成功 1 爱莲 字26 2009-11-03 17:41:50