RabbitMQ Installing on Generic Unix

服务下载

| Description | Download |
| ——| —— | :—-: |
| Generic Unix release (tar.xz, from rabbitmq.com) | rabbitmq-server-generic-unix-3.6.5.tar.xz |

Generic Unix or Linux (BSD, Mac OS X)

服务安装

安装最新的Erlang版本。
从上面的连接下载rabbitmq-server-generic-unix-3.6.5.tar.xz。

在这个压缩文件中有一个目录名为rabbitmq_server-3.6.5。对该文件进行解压操作,我们在rabbitmq_server-3.6.5将会找到sbin目录。

运行RabbitMQ服务

启动服务
  调用sbin/rabbitmq-server shell脚本。这里会显示一条banner消息内容
,结束的时候会显示”completed with [n] plugins.”的内容,这表明RabbitMQ已经启动成功。
  你也可以在后台运行服务,使用命令rabbitmq-server -detached,这种情况下服务进程会在后台运行。
配置服务
你可以在$RABBITMQ_HOME/etc/rabbitmq/rabbitmq-env.conf文件中设置RabbitMQ的环境变量信息。服务器组件也能够配置,这个RabbitMQ配置文件路径在$RABBITMQ_HOME/etc/rabbitmq/rabbitmq.config。安装后这两个文件本身是不存在的。

文件位置

这个通用的Unix版本被设计成可以直接运行,不需要改变配置或者指定权限。这个目录和文件信息默认都是安装在rabbitmq_server-3.6.5目录中,在脚本文件中使用$RABBITMQ_HOME环境变量来代替这个路径。

如果你希望安装的RabbitMQ服务是使用传统的系统目录方式来管理配置,数据库,日志文件,插件配置等,这也是允许的。

找到这行配置信息:

1
SYS_PREFIX=${RABBITMQ_HOME}

在sbin/rabbitmq-defaults文件中去改变这行:

1
SYS_PREFIX=

不要在这个文件中修改其他行的内容。

备注:在修改了这个默认的目录后也许需要不同的权限才能够工作。RABBITMQ_MNESIA_BASE和RABBITMQ_LOG_BASE需要创建权限(服务器在启动的时候会创建),RABBITMQ_ENABLED_PLUGINS_FILE 需要写权限(针对rabbitmq-plugins)。这个配置文件可以在/etc/rabbitmq/里面进行查看。

访问端口

SELinux and similar 机器也许会阻止RabbitMQ绑定端口。这种情况下,RabbitMQ将会启动失败。确保以下端口是被允许打开的:

1
2
3
4
5
4369 (epmd), 25672 (Erlang distribution)
5672, 5671 (AMQP 0-9-1 without and with TLS)
15672 (if management plugin is enabled)
61613, 61614 (if STOMP is enabled)
1883, 8883 (if MQTT is enabled)

可以配置RabbitMQ使用其他端口。

默认用户访问

这个服务创建了一个用户名guest密码为guest的用户。没有配置的客户端将采用这个用户。默认情况下这个凭证只能用于连接本机。

查看文档中访问控制信息。了解如何创建更多的用户、删除guest用户,或者允许guest用户进行远程访问。

管理服务

怎么停止服务或者检查它的状态等,你可以调用sbin/rabbitmqctl(作为运行rabbitmq-server的用户来操作)。如果没有服务在运行rabbitmqctl命令将报告节点不在线的信息。

  • 调用 rabbitmqctl stop 命令停止服务.
  • 调用 rabbitmqctl status 检查服务运行状态.

更多的信息查看rabbitmqctl

控制系统的限制

RabbitMQ安装运行在生产环境的工作负载情况下需要对系统的内核参数限制进行调整,保证一个合适的数量来处理并发的连接和队列。这里主要设置打开文件的最大数量,可以使用这个命令 ulimit -n。许多操作系统作为一个消息代理来说这个默认值太低了(大部分的linux默认值都是1024)。我们推荐使用最少65536的文件描述符作为用户rabbitmq的生产环境,4096 基本上满足大多数开发工作负载。

这里有2个限制参数:最大允许打开的文件数(fs.file-max on Linux, kern.maxfilesperproc on OS X and FreeBSD)和per-user 限制数(ulimit -n)。前者必须高于后者。

更多关于控制系统限制的信息,请参考 Riak guide on open file limit tuning.

验证限制

UI管理页面 在概述这个选项卡里显示了可用的文件描述符数量。

1
rabbitmqctl status

上面的信息也包含了同样的值。
这个命令:

1
ulimit -a

能够显示当前用户的限制数。There may be more convenient OS-specific ways of doing that for a running process, such as the /proc filesystem on Linux.

##配置管理工具
配置管理工具(比如:Chef, Puppet, BOSH)提供了对系统限制的调整。我们的开发工具指南里面列出了相关的模块和项目。