我有兴趣将Celery用于我正在开发的应用程序。这一切看起来都非常简单,但如果我有多个负载均衡的应用服务器,我对我需要做的事情有点困惑。所有文档都假定代理与应用程序位于同一服务器上。目前,我的所有应用程序服务器都位于Amazon ELB后面,任务需要能够来自其中任何一个。
这是我认为我需要做的事情:
我唯一的关注点是:如果我的经纪人实例死亡会怎样?我可以运行2个代理实例吗?如果一个人进入,我会安全吗?
任何有关如何在我的设置中做什么的提示或信息将不胜感激。我确定我错过了什么或者没有理解。
答案 0 :(得分:2)
供将来参考,对于那些喜欢坚持使用RabbitMQ的人......
您可以从2个或更多实例创建RabbitMQ群集。将这些实例添加到您的ELB并将您的芹菜工人指向ELB。只要确保连接正确的端口,就应该全部设置好。不要忘记允许RabbitMQ计算机相互通信以运行集群。这在我的制作中非常适合我。
此处有一个例外:如果您需要安排任务,则需要celerybeat流程。出于某种原因,我无法将celerybeat连接到ELB,并且必须直接将其连接到其中一个实例。我打开了一个关于它的问题,它应该被解决(还没有测试它)。请记住,芹菜本身只能存在一次,所以这已经是一个单一的失败点。
答案 1 :(得分:1)
你的所有观点都是正确的。
如何制作可靠的代理:进行集群式rabbitmq安装,如下所述: http://www.rabbitmq.com/clustering.html
答案 2 :(得分:0)