【发布时间】:2017-02-03 19:40:54
【问题描述】:
我在 Docker 中运行 Celery 和 RabbitMQ Gunicorn。
我的问题是:我知道 Celery 是为分布式处理而设计的。我根本没有看到任何文档,假设我在同一个 LAN 上有几台机器/节点,它们是如何发现彼此的? RabbitMQ 有作用吗?芹菜实例会以某种方式发现彼此吗?某处是否有合适的主机列表?如果是这样,我该如何编辑它?
另外,假设我只使用一个节点来处理 HTTP 请求,我还需要在所有节点上运行 gunicorn 吗?我问这个是因为在 gunicorn start 命令中,它有一个工人数量的设置。而且,此设置是否仅适用于该节点,还是作为所有连接节点的最大总数?
编辑: 在第一个答案之后,我开始研究这个。似乎我需要某种网络设置,群或桥接等。我应该澄清一下,我正在使用 docker-compose 来提出解决方案,并且我发现正常的群设置不起作用,我有如果我走那条路,使用稍微不同的东西。
明确一点:我需要一种方法,可以在不同的主机上添加 celery worker 并让他们能够与“主”主机通信,这样我就可以增加系统。如果有人可以提供实现此目标的清晰流程或链接,那将是最有帮助的。
我希望我已经清楚地表达了这一点,如果您需要任何进一步的信息,请告诉我。
谢谢!
【问题讨论】:
标签: docker rabbitmq celery gunicorn