Rabbit MQ从安装到启动(Linux环境)
首先要知道Rabbit MQ是erlang语言开发的,装Rabbit MQ之前必须安装erlang,同时这两个的版本有对应关系,可自行去官网查看对应关系。
可以下载好rpm文件,上传到Linux安装,也可以使用wget命令直接下载,然后安装,此处使用的wget命令,官网上也提供了wget命令下载的代码,找到一个要安装的版本,点进去,就可以看见wget下载代码。
下面是具体的安装过程:
在终端执行下面命令:
下载erlag(注意版本号)
wget --content-disposition https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-22.3.4.12-1.el7.x86_64.rpm/download.rpm
安装erlang
yum localinstall erlang-22.3.4.12-1.el7.x86_64.rpm
成功之后,下载Rabbit MQ
wget --content-disposition https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/7/rabbitmq-server-3.8.13-1.el7.noarch.rpm/download.rpm
安装之前运行下面的命令将key导入,(不导入应该也是可以的,我不是很确定)
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
安装
yum localinstall rabbitmq-server-3.8.13-1.el7.noarch.rpm
安装完之后,进行启动
systemctl start rabbitmq-server
可以通过下面的命令查看是否启动状态,查看打印出来的状态信息即可,有绿色的running就是成功了(要向生活过得去,代码总要带点绿哈哈哈)
systemctl status rabbitmq-server
启动不成功,可能是因为ip-主机名映射问题,修改映射,注意的是修改完之后要重启Rabbit MQ
## 查看ip
ifconfig
## 查看主机名
hostname
## 修改主机名
hostnamectl set-hostname xxx
vim /etc/hosts
## 追加上
ip xxx
设置开机自动启动
systemctl enable rabbitmq-server
以上就安装完成了,然后我们安装web界面插件,默认是不安装的,安装web界面插件后可通过下面的地址进行访问web界面,默认的账号密码是guest,默认情况下只能在本机访问,如果要在windows下的游览器访问需要添加远程登录用户,并分配权限。
在windows下的游览器访问:
http://Linux的ip:15672/#/
首先安装web界面插件
rabbitmq-plugins enable rabbitmq_management
安装完成后重启Rabbit MQ服务
systemctl restart rabbitmq-server
接下来是创建远程登录用户(名字随意,毕竟是自己创建的,密码随意,爱咋咋地)
rabbitmqctl add_user admin admin
分配远程登录用户的权限
rabbitmqctl set_user_tags admin administrator
注意:经过我的实验,此处只分配该权限在进行java代码操作时会出现如下的错误
Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method<connection.close>(reply-code=530, reply-text=NOT_ALLOWED - access to vhost '/' refused for user 'user_admin', class-id=10, method-id=40)
该错误的原因是:rabbitmq使用的用户没有赋予访问权限,创建的是admin用户,给admin用户赋予‘/’目录的访问权限就可以
授权代码如下
rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'
权限分配完成后,再次访问web界面还是无法访问,使用为所用到的15672端口没有开放,直接放行端口即可
/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
或者直接关闭防火墙
systemctl stop firewalled
##查看防火墙状态
systemctl status firewalld
以上一系列操作完成后最好重新启动一下Rabbit MQ
systemctl restart rabbitmq-server
最后就可以从web端访问,地址在上边写了,也可以通过java进行相关操作。
以上就是学习Rabbit MQ安装时候的安装流程,以及遇到一些问题,大家理性参考,是在不行搞个docker一切从简。(作者:钱到位一直加班)
补充:安装延时队列插件# rabbitmq_delayed_message_exchange
查看是否安装该插件
rabbitmq-plugins list
包名:rabbitmq_delayed_message_exchange-3.8.0.ez
wget安装方式,需要修改版本号,直接进入rabbitmq的plugins路径下下载即可
wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/v3.8.0/rabbitmq_delayed_message_exchange-3.8.0.ez
要注意版本版本问题,如果版本不匹配安装的时候回提示,就算成功了也启动不起来
如果不使用wget下载,而是下载包,将包上传到该路径,下边是我的路径
可以通过以下命令查看rabbitmq的安装路径
whereis rabbitmq
查到安装路径之后,将下载好的插件包弄到下面的路径,每个人的不一样,只要弄到plugins包下即可
/usr/lib/rabbitmq/lib/rabbitmq_server-3.8.13/plugins
开启插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
开启之后可能出现这些代码,这个不影响使用,正常用即可
Enabling plugins on node rabbit@zzy:
rabbitmq_delayed_message_exchange
The following plugins have been configured:
rabbitmq_delayed_message_exchange
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
Applying plugin configuration to rabbit@zzy...
Plugin configuration unchanged.
重启rabbitmq即可