RabbitMQ 单机搭建及碰见的问题

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
WindowsC:Program FilesRabbitMQrabbitmq_server-versionplugins(安装rabbitmq的目录)
Homebrew/usr/local/Cellar/rabbitmq/version/plugins
Generic Unixrabbitmq_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'
发现有多个安装版本,保留对应的版本,删除其他的文件,重新对环境做软连接
   

重新启动后发现之前的用户信息丢失,这个可能是节点名称改变导致的。可以通过配置文件固定节点名称

  1. 打开/etc/rabbitmq/rabbitmq-env.conf,如果没有则创建这个文件
  2. 在文件中加入NODENAME=rabbit@node1(名称随意配置)
  3. 打开/etc/hosts文件加入 127.0.0.1 node1(根据你设置名称而定)
  4. 重启 RabbitMQ 即可解决问题。
添加新评论