Linux下安装RabbitMQ

1. 安装erlang

erlang的安装比想象中要麻烦的多,试验了好几种,总是出现依赖错误。。最后还是通过kerl脚本安装搞定了。。具体参见:Installing Erlang

但是默认会安装到/usr/local目录,然后又是root启动。。所以我们要修改他的默认安装地址,然而文档并没有说明怎么指定,查看Makefile发现如下变量:

DESTDIR ?=

PREFIX ?= /usr/local
WINDOWS_PREFIX ?= rabbitmq-server-windows-$(VERSION)

MANDIR ?= $(PREFIX)/share/man
RMQ_ROOTDIR ?= $(PREFIX)/lib/erlang
RMQ_BINDIR ?= $(RMQ_ROOTDIR)/bin
RMQ_LIBDIR ?= $(RMQ_ROOTDIR)/lib
RMQ_ERLAPP_DIR ?= $(RMQ_LIBDIR)/rabbitmq_server-$(VERSION)

所以我们可以这样子编译:

TIPS

  1. 注意到源码安装的RabbitMQ默认安装了6个插件,其实就是下面要介绍的监控和管理插件。
  2. 如果要后台运行: rabbitmq-server -detached
  3. 正在生产环境使用需要配置一下,比如内存,文件句柄限制,等。

4. 管理和监控

Management Plugin

如果是源码安装,这一步可以忽略:

管理插件默认是监听15672端口,我们可以修改这个配置项:

=WARNING REPORT==== 8-Apr-2016::17:05:33 ===
HTTP access denied: user '' - invalid credentials

=ERROR REPORT==== 8-Apr-2016::17:05:33 ===
webmachine error: path="/api/whoami"
"Unauthorized"

=INFO REPORT==== 8-Apr-2016::17:05:33 ===
webmachine_log_handler: closing log file: "/tmp/rabbit-mgmt/access.log"

=INFO REPORT==== 8-Apr-2016::17:05:33 ===
opening log file: "/tmp/rabbit-mgmt/access.log.2016_04_08_09"
^@
=WARNING REPORT==== 8-Apr-2016::17:06:03 ===
HTTP access denied: user 'guest' - User can only log in via localhost

guest只能通过本机访问。查看文档需要使用rabbitmqctl add_user来创建一个non-administrator user 和 rabbitmqctl set_user_tags来提升一个普通用户为管理员:

还��以通过管理插件查看API:http://10.242.111.26:8345/api/。

但是发现用管理节目创建一个队列一直没有反应,Console显示为 PUT http://10.242.111.26:8345/api/queues/%2F/91-order-wq 401 (Unauthorized)。日志显示:

=ERROR REPORT==== 8-Apr-2016::17:43:45 ===
webmachine error: path="/api/queues/%2F/91-order-wq"
"Unauthorized"
^@^@^@^@
=WARNING REPORT==== 8-Apr-2016::17:48:10 ===
HTTP access denied: user 'argan' - User not authorised to access virtual host

=ERROR REPORT==== 8-Apr-2016::17:48:10 ===
webmachine error: path="/api/queues/%2F/91-order-wq"
"Unauthorized"

是没有权限,原来 administrator 还不是万能的。。好吧。。

4. 使用

可以参考这个系列,RabbitMQ系列 第三篇:工作队列Work Queue

RabbitMQ 的详细介绍:请点这里
RabbitMQ 的下载地址:请点这里

相关推荐