RabbitMQ 是基于 Erlang 语言写的,所以安装 RabbitMQ 需要先安装 Erlang 的环境。如果不是按照下面给出的版本进行安装的话,请参考官网文档,下载对应的安装文件,不然可能会导致安装失败。
系统环境
- CentOS Linux release 7.6.1810 (Core)
- erlang-22.0.7-1.el7.x86_64
- rabbitmq-server-3.7.17-1.el7.noarch
安装 Erlang 和 RabbitMQ
Erlang 安装
$ wget https://github.com/rabbitmq/erlang-rpm/releases/download/v22.0.7/erlang-22.0.7-1.el7.x86_64.rpm
$ yum install -y erlang-22.0.7-1.el7.x86_64.rpm
安装完成后
$ erl 命令可以判断是否按照成功
RqbbitMQ 安装
$ wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.17/rabbitmq-server-3.7.17-1.el7.noarch.rpm
$ yum install -y rabbitmq-server-3.7.17-1.el7.noarch.rpm
RabbitMQ 常见配置
相关命令
$ systemctl start|restart|stop|status rabbitmq-server
插件管理
RabbitMQ的有些插件没有集成在初始的安装中,它们需要额外安装,这些文件的后缀为.ez,安装时需要将.ez文件拷贝到安装的插件目录。
以下是不同系统中默认安装的插件目录路径
系统 | 插件目录 |
---|---|
Linux | /usr/lib/rabbitmq/lib/rabbitmq_server-version/plugins |
Windows | C:\Program Files\RabbitMQ\rabbitmq_server-version\plugins(安装rabbitmq的目录) |
Homebrew | /usr/local/Cellar/rabbitmq/version/plugins |
Generic Unix | rabbitmq_server-version/plugins (安装rabbitmq的目录) |
插件命令(使用root权限)
查看插件列表
$ sudo rabbitmq-plugins list
开启插件
$ sudo rabbitmq-plugins enable plug-name
例如开启web界面
$ rabbitmq-plugins enable rabbitmq_management
以上操作后,如果端口号打开了,就可以通过 http://{ip}:15672 打开web管理界面了
用户管理
查看当前用户列表
$ rabbitmqctl list_users
添加用户
$ rabbitmqctl add_user 用户名 密码
设置用户标签 超级管理员(administrator), 监控者(monitoring), 策略制定者(policymaker), 普通管理者(management)以及其他
$ rabbitmqctl set_user_tags 用户名 administrator
权限设置
$ rabbitmqctl set_permissions -p '/' 用户名 '.*' '.*' '.*'
防火墙及端口配置
查看防火墙是否开启
$ firewall-cmd --state
表示正在运行
$ runing
查看打开端口列表
$ firewall-cmd --list-port
如果5672,15672端口没有打开,则打开
$ firewall-cmd --zone=public --add-port=5672/tcp --permanent
$ firewall-cmd --zone=public --add-port=15672/tcp --permanent
开机启动
$ chkconfig rabbitmq-server on
遇见问题
安装成功后,启动 RabbitMQ 无法启动。需要先去查看RabbbitMQ的版本号是否对应。如果版本号不对应,则需要卸载之前安装的内容
查看安装文件
$ yum list installed | grep rabbitmq
$ yum remove rabbitmq*
$ yum list installed | grep erlang
$ yum remove erlang*
我通过这种方式卸载后,重新安装发现的版本还是
$ find / -name 'rabbitmq'
$ find / -name 'erlang'
发现有多个安装版本,保留对应的版本,删除其他的文件,重新对环境做软连接
重新启动后发现之前的用户信息丢失,这个可能是节点名称改变导致的。可以通过配置文件固定节点名称
- 打开/etc/rabbitmq/rabbitmq-env.conf,如果没有则创建这个文件
- 在文件中加入NODENAME=rabbit@node1(名称随意配置)
- 打开/etc/hosts文件加入 127.0.0.1 node1(根据你设置名称而定)
- 重启 RabbitMQ 即可解决问题。