为了在Web上实时传输数据,我计划将Redis用作我的Cache数据层,其中数据是瞬时的。Celery是队列管理器,RabbitMQ是从Redis排队进入Tornado层的代理。然后,该层通过websockets流到前端。
我从未在网上找到Redis + RabbitMQ组合。有人可以为它提供可靠的解决方案指南。问题是这样的整合是否可能和明智的?
我现在非常成功地一起使用了Tornado和RabbitMQ(没有Celery)。我还对Redis作为数据库插入系统做了一些原型设计。成功的最佳机会是找到可以插入Tornado的ioloop的异步库。例如,有tornado- redis,pika(用于RabbitMQ)和tornado- Celery。我还要补充一点,我从未使用过tornadoCelery,所以我不确定它的质量。
从纯粹的架构角度来看,我认为将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!