安装Erlang
在安装RabbitMQ之前,需要先安装Erlang。可以通过以下命令安装:
yum install erlang
安装时信息如下:
安装RabbitMQ 服务端
安装命令如下:
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.4.2/rabbitmq-server-3.4.2-1.noarch.rpm
rpm -Uvh rabbitmq_server-3.4.2-1.noarch.rpm
安装信息如下:
运行RabbitMQ服务端
服务器会以默认的方式启动。你可以自定义RabbitMQ环境,和配置组件。
当RabbitMQ服务端被安装好时,它并不是默认被作为一个守护进程启动的。为了能让它作为一个守护进程启动起来,需要用管理员权限使用以下命令:
chkconfig rabbitmq-server on
并用以下命令来启动或关闭服务:
/sbin/service rabbitmq-server stop/start
访问端口
SELinux和相似的机制可能会阻止RabbitMQ绑定一个端口。这样的话,RabbitMQ就会启动失败。确保以下端口可以被打开。
- 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。未配置的客户端一般都会这些凭证。当访问localhost的时候这些凭证都会默认被使用,所以当从其它机器连接过来前你需要做点变动。
从访问控制的文档里,你可以知道怎么增加用户、删除用户和允许用户的远程访问。
管理协商器
当要让服务端停下来或者检查状态时,你可以启动 rabbitmqctl(使用管理员权限)。它应该在路径上可用的。rabbitmqctl命令可以报告节点的情况。
- 使用 rabbitmqctl stop 来停止服务端。
- 使用 rabbitmqctl status 来检查它是否在运行。例如:
更多详见rabbitmqctl。
日志
服务端的输出会被发送到在 RABBITMQ_LOG_BASE 目录下的 RABBITMQ_NODENAME.log 文件。额外的日志数据会被写到 RABBITMQ_NODENAME-sasl.log 。
控制在Linux上的系统限制
为了处理数量相当的并发连接和队列,RabbitMQ需要一些系统限制和参数调教。需要调整的主要设置是打开文件的最大数目,也就是 ulimit -n。对一个消息中间件来说,很多操作系统上的默认值都太小了。推荐至少65536 个文件描述符给生产环境中的使用者 rabbitmq。4096其实也可以应付大多数负荷了。
有两个限制:操作系统内核所允许的打开文件最多数目(fs.file-max)和用户数限制(ulimit -n)。前者必须比后者高。
调整用户数限制的最直接方式是,在启动服务前,编辑 rabbitmq-env.conf。
ulimit -S -n 4096
软限制数并不能比硬限制数高。硬限制书可以通过 /etc/security/limits.conf 更改。
验证限制
RabbitMQ管理界面可以展示可用的文件描述符数目。
rabbitmqctl status
包括了同样的信息。
以下命令:
cat /proc/$RABBITMQ_BEAM_PROCESS_PID/limits
可以用来显示一个运行中进程的有效限制。$RABBITMQ_BEAM_PROCESS_PID是运行RabbitMQ的Erlang VM的PID,可通过rabbitmqctl查询。