西西河

主题:【原创】解剖Twitter 【1】 -- 邓侃

共:💬68 🌺272 新:
全看分页树展 · 主题 跟帖
家园 Apache进程空循环的问题

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的效率不高,但是还是用它,是“历史”遗留问题,不是技术优化的考虑。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河