Comet 10w + 连接打开测试
Comet是一个时髦词语,象ajax一样,非常Cool。Comet的主要作用是,服务器可以把新数据主动传送给客户端。
我认为,Comet将是下一波互联网应用更新潮的主流.象google wave使用Comet一样,实现实时更新.
Plurkr 的增长速度非常快,我们正在成为最大的Python网站之一,我们的每天都有10w+的在线用户。
我们大约用了一个星期寻找不同的解决方案.
以下是我积累的一些技术资料:
Python Twisted: 无阻塞的Python服务器。遗憾的是吃了很多的CPU,不能规模化应用。
Jetty: 他们声称对Comet有良好的支持,我们运行1w个活跃用户约点2GB的内存,这是我们不能接受的。
Apache Tomcat: 和Jetty有点象,同样需要非常多的内存.
Apache Mina: 一个NIO的(非阻塞的IO)的框架,我用来建立一个HTTP服务器。不幸的是mina严重缺小文档,我们并没有大规模测试了。
这些尝试后,发现了,他们无法处理大量的负载,我正要放弃。 但后来,我偶然发现后救世主:
JBoss Netty: 一个NIO的(非阻塞的IO)的框架, 创始人是Apache mina的原作者,它的设计很出色,和其它的服务器对比过后,发现他的并发相当惊人的.
最低标准
我们使用Netty 打开10w+的comet连接,在一台四核的服务器上只使用了数GB的内存和20%的cpu。也就是说,我们已经解决了C10k * 10 问题使用非阻塞技术和一些非常令人印象深刻的库(即Java NIO的和Netty)。
一个大的荣誉是属于 Trustin Lee 对他的Netty惊人的工作!
原文:http://amix.dk/blog/post/19456
最近评论