自动缩放Python芹菜与亚马逊EC2

我有一个Celery任务管理器来为公司分析找出一些数字。

任务管理器和工作人员托管在Amazon EC2 Linux服务器上。

如果我们向芹菜发送太多任务,我需要建立系统。亚马逊会自动设置一个新的EC2实例来运行更多的员工,并平衡这些员工的负载。

我知道的服务存在的是Amazon Autoscale和Amazon负载平衡服务,看起来正是我想要使用的服务,但我不确定配置Celery的最佳方式是什么。

我认为我应该有一个收集所有任务的芹菜“主人”和一些执行它们的芹菜工人。 随着任务数量的增加,我想增加更多的工作人员。 自动缩放的方式(通过采用芹菜服务器的AMI)我认为我现在正在克隆主人和工人,这似乎不是我想做的事情。

我如何组织这些以实现我的最终目标,即使用Celery管理任务的灵活自动缩放任务管理以及托管计算的Amazon Web Service。

尽可能详细的答案(或教程链接!)将不胜感激,因为大多数教程或建议似乎承担了我目前没有的大量知识!


你不需要一个主人工架构来实现这个功能。 如果我正确理解您的问题,您希望能够根据队列大小进行缩放。 如果你有以下步骤,我会说它会更容易

  • 为代理安装elasticache / sqs(因为你在aws中)
  • 对于自定义扩展 - 定期任务使用类似这样的东西来检查队列大小,或者在CPU使用率高时(假设这是一个足够好的负载指示),添加亚马逊自动扩展来添加/删除机器。 另外,使用--autoscale启动worker,以便正确反映CPU使用情况。
  • 链接地址: http://www.djcxy.com/p/82933.html

    上一篇: Autoscale Python Celery with Amazon EC2

    下一篇: Can I cast a metaclass object to a protocol type in Swift?