在RabbitMQ官网上下载对应系统版本的rabbitmq-server安装包进行安装。(官网提示,虽然rabbitmq-server的源会添加到标准的Debian和Ubuntu源中,但是一般都是旧的包,建议在官网直接下载最新的包进行安装)
由于RabbitMQ是使用Erlang语言写的,所以需要Erlang环境,Erlang版本对应的RabbitMQ版本对应表如下:
Erlang Release Series | Repositories that provide it |
---|---|
20.x | Erlang Solutions. Supported starting with 3.6.11. NOT SUPPORTED by earlier versions. |
19.x | Erlang Solutions,Debian Stretch,Debian Jessie backports, Ubuntu Zesty (17.04) |
18.x | Erlang Solutions, Ubuntu Yakkety (16.10), Ubuntu Xenial (16.04) |
17.x | Erlang Solutions,Debian Jessie,Debian Wheezy backports |
当前官网最新的包为rabbitmq-server_3.6.14-1_all.deb,因此需要使用Erlang 20以上的版本。
都下载完成后,使用对应系统的安装命令进行包的安装即可,此处以ubuntu16为例:
sudo dpkg -i esl-erlang_20.1-1~ubuntu~xenial_amd64.deb
//如果报缺少依赖则执行下一句解决依赖问题
sudo apt -f install
sudo dpkg -i rabbitmq-server_3.6.14-1_all.deb
//如果缺少依赖,同上
安装完成后服务会自动启动。以下介绍常用命令:
//启动服务
sudo rabbitmq-server start
//关闭服务
sudo rabbitmq-server stop
//重启rabbitmq
sudo rabbitmq-server restart
//后台启动
sudo rabbitmq-server –detached
//关闭整个节点,包括应用
sudo rabbitmqctl stop
//仅关闭应用
sudo rabbitmqctl stop_app
//启动应用
sudo rabbitmqctl start_app
//查看所有安装了的插件
sudo rabbitmq-plugins list
//启动管理模块插件
sudo rabbitmq-plugins enable rabbitmq_management
//关闭插件
sudo rabbitmq-plugins disable rabbitmq_management
//查看所有用户(默认用户名和密码均为:guest)
sudo rabbitmqctl list_users
//添加用户并设置密码
sudo rabbitmqctl add_user username userpass
//设置用户权限
sudo rabbitmqctl set_user_tags username tagname
//修改用户密码
sudo rabbitmqctl change_password username newuserpass
RabbitMQ启动后,相应端口信息:
端口 | 描述 |
---|---|
4369 | epmd, a peer discovery service used by RabbitMQ nodes and CLI tools |
5672, 5671 | used by AMQP 0-9-1 and 1.0 clients without and with TLS |
25672 | used by Erlang distribution for inter-node and CLI tools communication and is allocated from a dynamic range (limited to a single port by default, computed as AMQP port + 20000). See networking guide for details. |
15672 | HTTP API clients and rabbitmqadmin (only if the management plugin is enabled) |
61613, 61614 | STOMP clients without and with TLS (only if the STOMP plugin is enabled) |
1883, 8883 | (MQTT clients without and with TLS, if the MQTT plugin is enabled |
15674 | STOMP-over-WebSockets clients (only if the Web STOMP plugin is enabled) |
15675 | MQTT-over-WebSockets clients (only if the Web MQTT plugin is enabled) |
Linux系统上的System Limits限制:
使用如下命令可以查看系统对链接数量的限制:
ulimit -n
默认设置一般为1024.此数量对于RabbitMQ来讲,太可怜了。。。建议设置为65536.开发环境中,使用4096也足够了。
这里有两个需要设置的限制数量:①系统内核的允许文件持有数量限制(fs.file-max)以及每个用户的限制(ulimit -n),前者必须大于后者才行!!!
fs.file-max设置方式:
echo 6553560 > /proc/sys/fs/file-max
或修改 /etc/sysctl.conf, 加入
fs.file-max = 65536重启生效
ulimit设置方法:
系统默认的ulimit对文件打开数量的限制是1024,修改/etc/security/limits.conf并加入以下配置,永久生效
* soft nofile 65536
* hard nofile 65536
修改完之后,重启即可生效
较新的Linux发行版(使用systemd进行启动的发行版),使用该文件进行相关配置:
/etc/systemd/system/rabbitmq-server.service.d/limits.conf,如:
[Service]
LimitNOFILE=300000
修改完成后,可以使用以下命令进行检查:
sudo rabbitmqctl status