使用 RabbitMQ — Python 文档

来自菜鸟教程
Celery/docs/latest/getting-started/backends-and-brokers/rabbitmq
跳转至:导航、​搜索

使用 RabbitMQ

安装和配置

RabbitMQ 是默认代理,因此除了您要使用的代理实例的 URL 位置之外,它不需要任何额外的依赖项或初始配置:

broker_url = 'amqp://myuser:mypassword@localhost:5672/myvhost'

有关代理 URL 的描述以及 Celery 可用的各种代理配置选项的完整列表,请参阅 代理设置 ,请参阅下文以设置用户名、密码和虚拟主机。


安装RabbitMQ服务器

请参阅 RabbitMQ 网站上的 安装 RabbitMQ。 对于 macOS,请参阅 在 macOS 上安装 RabbitMQ

笔记

如果您在安装和使用 rabbitmqctl 后遇到 nodedown 错误,那么这篇博文可以帮助您确定问题的根源:

设置RabbitMQ

要使用 Celery,我们需要创建一个 RabbitMQ 用户,一个虚拟主机并允许该用户访问该虚拟主机:

$ sudo rabbitmqctl add_user myuser mypassword
$ sudo rabbitmqctl add_vhost myvhost
$ sudo rabbitmqctl set_user_tags myuser mytag
$ sudo rabbitmqctl set_permissions -p myvhost myuser ".*" ".*" ".*"

将上述 myusermypasswordmyvhost 替换为适当的值。

有关 访问控制 的更多信息,请参阅 RabbitMQ 管理指南


在 macOS 上安装 RabbitMQ

在 macOS 上安装 RabbitMQ 的最简单方法是使用 Homebrew 新的闪亮的 macOS 包管理系统。

首先,使用 Homebrew 文档 提供的单行命令安装 Homebrew:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

最后,我们可以使用 brew 安装 RabbitMQ:

$ brew install rabbitmq

使用 brew 安装 RabbitMQ 后,您需要将以下内容添加到您的路径中,以便能够启动和停止代理:将其添加到您的 shell 的启动文件中(例如,.bash_profile.profile)。

PATH=$PATH:/usr/local/sbin

配置系统主机名

如果您使用的 DHCP 服务器为您提供随机主机名,则需要永久配置主机名。 这是因为 RabbitMQ 使用主机名与节点通信。

使用 scutil 命令永久设置您的主机名:

$ sudo scutil --set HostName myhost.local

然后将该主机名添加到 /etc/hosts 以便可以将其解析回 IP 地址:

127.0.0.1       localhost myhost myhost.local

如果您启动 rabbitmq-server,您的兔子节点现在应该是 rabbit@myhost,如 rabbitmqctl 所验证:

$ sudo rabbitmqctl status
Status of node rabbit@myhost ...
[{running_applications,[{rabbit,"RabbitMQ","1.7.1"},
                    {mnesia,"MNESIA  CXC 138 12","4.4.12"},
                    {os_mon,"CPO  CXC 138 46","2.2.4"},
                    {sasl,"SASL  CXC 138 11","2.1.8"},
                    {stdlib,"ERTS  CXC 138 10","1.16.4"},
                    {kernel,"ERTS  CXC 138 10","2.13.4"}]},
{nodes,[rabbit@myhost]},
{running_nodes,[rabbit@myhost]}]
...done.

如果您的 DHCP 服务器为您提供一个以 IP 地址开头的主机名,这一点尤其重要(例如,23.10.112.31.comcast.net)。 在这种情况下,RabbitMQ 将尝试使用 rabbit@23:非法主机名。


启动/停止 RabbitMQ 服务器

启动服务器:

$ sudo rabbitmq-server

您还可以通过添加 -detached 选项在后台运行它(注意:只有一个破折号):

$ sudo rabbitmq-server -detached

永远不要使用 kill (kill(1)) 来停止 RabbitMQ 服务器,而是使用 rabbitmqctl 命令:

$ sudo rabbitmqctl stop

当服务器运行时,可以继续阅读【X53X】设置RabbitMQ【X76X】。