【问题标题】:Autoscale Python Celery with Amazon EC2使用 Amazon EC2 自动缩放 Python Celery
【发布时间】:2017-06-13 03:59:38
【问题描述】:

我有一个 Celery 任务管理器来处理公司分析的一些数字。

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

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

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

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

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

我们将不胜感激任何答案(或教程链接!)中尽可能详细的信息,因为大多数教程或建议似乎都假设了我目前没有的大量知识!

【问题讨论】:

    标签: python amazon-web-services amazon-ec2 celery taskmanager


    【解决方案1】:

    您不需要主从架构来使其工作。如果我正确理解您的问题,您希望能够根据队列大小进行扩展。我会说如果你有以下步骤会更容易

    1. 为代理设置elasticache/sqs(因为您在aws中)
    2. 对于自定义缩放 - periodic task 使用类似 this 的方式检查队列大小,或者在 CPU 使用率高时添加亚马逊自动缩放以仅添加/删除机器(假设这是一个足够好的负载指示)。此外,使用 --autoscale 启动工作程序,以便正确反映 CPU 使用率。

    【讨论】:

      猜你喜欢
      • 2020-11-25
      • 1970-01-01
      • 2018-11-26
      • 1970-01-01
      • 2017-08-17
      • 1970-01-01
      • 2019-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多