一尘不染

我可以使用Tornado + Celery + RabbitMQ + Redis吗?

python

为了在Web上实时传输数据,我计划使用Redis作为我的Cache数据层,其中数据是瞬时的。Celery是队列管理器,RabbitMQ是从Redis排队进入Tornado层的代理。然后,该层通过websockets流到前端。

我从未在网上找到Redis + RabbitMQ组合。有人可以为它提供可靠的解决方案指南。问题是这样的整合是否可能和明智的?


阅读 155

收藏
2021-01-20

共1个答案

一尘不染

我现在非常成功地一起使用了Tornado和RabbitMQ(没有芹菜)。我还对Redis作为数据库插入系统做了一些原型设计。成功的最佳机会是找到可以插入Tornado的ioloop的异步库。例如,有龙卷风-
redis
pika(用于RabbitMQ)和龙卷风-
芹菜
。我还要补充一点,我从未使用过龙卷风芹菜,所以我不确定它的质量。

从纯粹的架构角度来看,我认为将Redis和RabbitMQ一起使用不会有任何问题。虽然两者都可以用作消息代理,但是RabbitMQ并不真正适合用作缓存,而Redis非常适合该用例。如果您使用的是memcached而不是Redis,那似乎一点也不罕见,对吧?

另外(也许这是我可以建议Redis +
RabbitMQ可以工作的最佳论据),Pinterest显然同时使用(或至少使用过)两者来运行其网站:http :
//blog.gopivotal.com/pivotal/case- Studies-2 /使用redis-at-
pinterest获得数十亿美元的关系。

我发现另一个消息来源说他们最终用另一种解决方案取代了Celery /
RabbitMQ,但显然它为他们工作了一段时间。

编辑: 从2011年发现一个Quora链接,说他们实际上也在运行Tornado!

2021-01-20