当前位置: 首页 > 面试题库 >

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

钱振
2023-03-14
问题内容

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

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


问题答案:

我现在非常成功地一起使用了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!



 类似资料:
  • 问题内容: class AsyncHandler(tornado.web.RequestHandler): 引发错误: 代理和后端都使用redis,我只是从https://github.com/mher/tornado- celery 复制而来 当我使用amqp代理和redis后端时,它可以很好地工作,但在使用redis代理时却不能。这是因为tornado异步不支持Redis代理吗? 问题答案:

  • 本文向大家介绍tornado+celery的简单使用详解,包括了tornado+celery的简单使用详解的使用技巧和注意事项,需要的朋友参考一下 celery是实现一个简单,灵活可靠的分布式任务队列系统的好选择 tornado则不用过多介绍 在开发机上安装rabbitmq这里就不介绍了 首先是task文件的编写 task.py celeryconfig.py文件中包含对celery的配置 执行p

  • 问题内容: 由于没有人提供此帖子的解决方案,而且我非常需要解决方法,因此,这是我的处境以及一些抽象的解决方案/想法供讨论。 我的堆栈: 1. Tornado 2. Celery 3. MongoDB 4. Redis 5. Rabbit MQ 我的问题:找到一种方法让龙卷风派遣一个芹菜任务(解决),然后异步收集结果(有什么想法吗?)。 方案1 :(请求/响应hack加上webhook) 龙卷风收到

  • 问题内容: 我正在测试Django + Celery,您好是世界示例。使用RabbitMQcelery可以正常工作,但是当我切换到Redis经纪人/结果时,我得到以下信息: settings.py task.py 上面的测试中有什么问题吗? 问题答案: 我发现解决方案是源代码:http : //docs.celeryproject.org/en/latest/_modules/celery/res

  • Docker Flask Celery Redis A basic Docker Compose template for orchestrating a Flask application & a Celery queue with Redis Installation git clone https://github.com/mattkohl/docker-flask-celery-redis

  • 问题内容: 我只碰了芹菜和Java两天。:( 现在,我有一个Java客户端通过Rabbitmq发送任务的任务。芹菜将是处理任务的工人。 我知道Python-> rabbitmq-> celery很容易。但是我可以通过java-> rabbitmq-> celery来做到这一点吗? 草案的想法是通过JSON序列化Java函数,然后通过Rabbitmq发送,然后通过celery处理。 最好有示例代码并