异步消息队列 - 哪种组合?

2 投票
2 回答
2332 浏览
提问于 2025-04-16 15:35

我一直在考虑为一个网站搭建推送消息服务,想知道用哪些组合的工具比较好……我现在的想法是用Tornado + Socket.IO(叫做Tornadio)和ZMQ。不过我也在考虑加入Mongrel2。还有一个类似的项目叫Brubeck,它是基于Tornado,使用ZMQ和Eventlet。

我主要想知道的是,如果我用Tornado的话,Mongrel2有什么好处?那时候,Tornado还必要吗?我觉得那样我只需要写一个Mongrel2的Python处理程序就行了。我想专注于使用websockets/jssockets,这也是为什么我觉得Socket.IO很有意思,因为它在后台处理了所有的兼容性问题。

如果考虑的工具有:Python、Tornado、Mongrel2、ZMQ、Brubeck和Socket.IO,你有什么推荐的组合来支持websockets吗?Mongrel2让我觉得很吸引,因为它可以扩展,方便增加更多的Python处理程序。

更新 2012年1月1日

最开始我选择了Tornado + TornadIO + ZeroMQ,搭建了一个可以工作的服务器。但最后我学了Go(www.golang.org),用纯Go重写了我的服务器,利用了它内置的并发功能。结果比我的Python版本快了10倍以上,功能还更多:http://www.justinfx.com/2011/07/28/go-language-for-python-programmers/

随着Go团队不断发布新版本,Go的速度似乎还在不断提升。

2 个回答

0

听起来这个任务适合用Flash/JavaScript的绑定来完成。你可以查看这个链接了解更多信息:http://www.zeromq.org/bindings:javascript

这样的话,你就可以在浏览器里运行一个ZMQ应用,它可以接收(SUB)那些发布(PUB)相关消息的连接。

0

我想在这个问题下加个自己的更新,因为我没有收到其他的回答,所以我可以把这个问题关闭了……

一开始我选择了Tornado + TornadIO + ZeroMQ,搭建了一个可以工作的服务器。但最后我学会了Go语言(www.golang.org),并用纯Go重写了我的服务器。结果发现它的速度比Python快了超过10倍,而且功能比我之前的Python版本还多:http://www.justinfx.com/2011/07/28/go-language-for-python-programmers/

似乎随着Go团队不断发布新版本,Go的速度还在不断提升,朝着Go 1.0的方向发展。

撰写回答