能直接利用Tornado来做一个简单的PUSH消息系统吗

可以做成tornado集群啊,一台机器扛不住就横向扩展,然而这样就需要把服务解耦,试想这么一个场景,A用户对B用户发了信息,然而A用户在0.11这台机器上,B用户在0.12这台机器上,这样就需要一个单独的消息中心,所有节点全部订阅这个消息中心就好了。如此解耦tornado集群只负责消费消息,而消息的生产者就要分离出去。
【能直接利用Tornado来做一个简单的PUSH消息系统吗】 最近正在做tornado的消息推送集群设计,想利用zeromq做消息发布中心,一旦有消息之后通知所有tornado集群服务器,难点不在于消息中心而在于tornado节点服务器上的zeromq的subscirber怎么集成到tornado里面去。貌似tornado的ioloop不认zeromq的socket。过渡期采用的是两个线程,一个启动tornado,另一个线程启动zeromq的subscriber
留个坑,等做好了来更新。
已经做好了,直接把tornado的ioloop替换成zmq的poller就可以了,详细见我的一个样例:
nikoloss/rose-dewdrop

■网友
可以利用Tornado做一个push的系统,其实多人在线的瓶颈并不是把 10000人的RequestHandler存在内存里面,而是同时监听fd的数量。传统的select采用轮询,效率很低,而且有最大数量限制。而Tornado在linux上使用epoll,在BSD或mac上使用kqueue。效率非常高。具体的你可以参见以下Tornado给的demo,里面有个chat,利用long-polling推数据的。
■网友
在github 上搜索key words :tornado push ,有太多的结果了能直接利用Tornado来做一个简单的PUSH消息系统吗


■网友
nginx + 多线程 轻松解决 C10k问题,前提是没有非阻塞IO,比如MySQL-python这种玩意,用asyncmongo无妨
■网友
可以,利用tonado的异步请求就可以,不过不要想有一万个人在线,这个tonado来说是很困难的,它是单线程的。
■网友
正在开始试验用来做android推送后端,留个脚印。成了再来分享心得


    推荐阅读