使用RabbitMQ

安装与配置

RabbitMQ 是默认的中间人(Broker),只需要配置连接的URL即可,不需要安装额外的的配置以及初始化配置信息
1
broker_url = 'amqp://myuser:[email protected]:5672/myvhost'
Copied!
有关 Celery 各种中间人(Broker)的配置列表,请查阅代理设置,并且按照说明设置用户名和密码。

安装 RabbitMQ服务

安装 RabbitMQ 服务可以通过 RabbitMQ官网 进行 安装RabbitMQ ,Mac OS安装请查阅 Mac OS安装RabbitMQ

注意:

如果在安装 RabbitMQ 后,使用 rabbitmqctl 出现 nodedown 错误信息,可以查阅这片文章解决问题:

配置 RabbitMQ

要使用 Celery,需要创一个RabbitMQ账户:
1
$ sudo rabbitmqctl add_user myuser mypassword
2
$ sudo rabbitmqctl add_vhost myvhost
3
$ sudo rabbitmqctl set_user_tags myuser mytag
4
$ sudo rabbitmqctl set_permissions -p myvhost myuser ".*" ".*" ".*"
Copied!
修改myuser、mypassword、myvhost为自己配置的配置信息。
关于更多RabbitMQ配置,请查阅 RabbitMQ手册

Mac OS安装RabbitMQ

使用Mac OS的 Homebrew 安装RabbitMQ最为简单。
首先按照 Homebrew文档 提示安装 Homebrew
1
$ sudo ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Copied!
然后通过 brew 进行安装 RabbitMQ :
1
$ brew install rabbitmq
Copied!
使用 brew 安装 RabbitMQ 之后需要,将以下代码添加到环境变量(bash_profile或/etc/profile)中,方便针对中间人(Broker)的管理:
1
PATH=$PATH:/usr/local/sbin
Copied!

配置系统名称

如果您使用的 DHCP 随机分配的主机名称,需要重新永久化配置主机名称。因为 RabbitMQ 是使用主机名与各个节点进行通信的。
可以使用 scutil 命令进行永久配置主机名
1
$ sudo scutil --set HostName myhost.local
Copied!
然后将主机名添加到 /etc/hosts 中,以便进行解析
1
127.0.0.1 localhost myhost myhost.local
Copied!
如果您的 rabbitmq-server 已经在运行,您的节点名称现在应该是 [email protected] ,可以通过 rabbitmqctl 进行验证查看:
1
$ sudo rabbitmqctl status
2
Status of node [email protected] ...
3
[{running_applications,[{rabbit,"RabbitMQ","1.7.1"},
4
{mnesia,"MNESIA CXC 138 12","4.4.12"},
5
{os_mon,"CPO CXC 138 46","2.2.4"},
6
{sasl,"SASL CXC 138 11","2.1.8"},
7
{stdlib,"ERTS CXC 138 10","1.16.4"},
8
{kernel,"ERTS CXC 138 10","2.13.4"}]},
9
10
{running_nodes,[[email protected]]}]
11
...done.
Copied!
如果 DHCP 给您分配主机名称是以IP地址(如:23.10.112.31.comcast.net),RabbitMQ将尝试用 [email protected] :非法的用户名。

启动/停止 RabbitMQ 服务

启动服务:
1
$ sudo rabbitmqctl-server
Copied!
也可以通过添加 -detached 参数在后台运行:
1
$ sudo rabbitmqctl-server -detached
Copied!
永远不要通过 kill 命令来进行停止 RabbitMQ 运行,使用 rabbitmqctl 命令来进行停止 RabbitMQ :
1
$ sudo rabbitmqctl stop
Copied!
当你服务已经在运行的时候,您可以继续查看 RabbitMQ配置
Last modified 2yr ago