最近在阿里云服务上安装RabbitMQ 服务遇到的一些问题,特意记录下,避免走弯路,方便查阅。
先准备好安装环境,系统CentOS7,Erlang,rabbitmq-server。
Erlang下载1:
在下面地址查看安装RabbitMQ需要安装的erlang对应的版本。
https://www.rabbitmq.com/which-erlang.html
Erlang下载1.png
Erlang下载2:
下载地址:
https://github.com/rabbitmq/erlang-rpm/releases
Erlang下载2.png
RabbitMQ server下载地址
https://www.rabbitmq.com/install-rpm.html
image.png
查看rabbitmq-server历史版本
https://github.com/rabbitmq/rabbitmq-server/tags
image.png
Erlang,RabbitMQ server下载下来如下:
image.png
第一步:远程终端登录上阿里云服务器
这里用的是Xshell6命令终端来远程连接阿里云服务。
把下载下来的安装包复制到阿里云CentOS7系统目录/home/download/下,如下图
image.png
文件复制可以通过宝塔控制面板上的文件上传,或者通过Xftp上传:
宝塔控制面板上传:
image.png
Xftp上传:
image.png
第二步:安装Erlang Rabbitmq server
Erlang安装命令
//
sudo rpm -Uvh /home/download/erlang-22.3.4.12-1.el7.x86_64.rpm
//查看erlang的版本
erl -version
//安装socat
sudo yum install -y socat
//退出erl 命令(这个不用执行)
halt().
image.png
RabbitMQ server安装
//安装RabbitMQ
sudo rpm -Uvh /home/download/rabbitmq-server-3.8.9-1.el7.noarch.rpm
第三步 启动和关闭
//启动RabbitMQ服务
sudo systemctl start rabbitmq-server
//查看状态
sudo systemctl status rabbitmq-server
//停止服务
sudo systemctl stop rabbitmq-server
//设置开机启动
sudo systemctl enable rabbitmq-server
image.png
异常情况
如果在启动RabbitMQ server时报异常了,查看端口5672是否别占用,如果被占用就关闭占用该端口的java应用。
//查看进程情况
netstat -naop | grep 5672
//查看当前运行的java程序
ps -ef | grep java
第四步 开启web控制台插件
//开启web控制台插件
rabbitmq-plugins enable rabbitmq_management
//关闭web控制台插件
rabbitmq-plugins disenable rabbitmq_management
//把端口15672放入安全组,宝塔控制面板安全添加端口15672
http://公网ip:15672
有一个默认的guest用户,但只能通过localhost访问,所以要添加一个能远程访问的用户
image.png
第五步 添加用户 权限
//添加 用户 密码
rabbitmqctl add_user admin admin
//分配操作权限
rabbitmqctl set_user_tags admin administrator
//分配资源权限
//设置权限<即开启远程访问>(如果需要远程连接,例如java项目中需要调用mq,
//则一定要配置,否则无法连接到mq,admin为要赋予远程访问权限的刚创建的那个账号的名字,
//必须运行着rabbitmq此命令才能执行)
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
image.png
防火墙添加端口
RabbitMQ服务启动后,不能访问,需要将端口添加到防火墙:
//把端口15672放入阿里云安全组,宝塔控制面板安全添加端口15672
http:// 公网ip:15672
添加端口
sudo firewall-cmd --zone=public --add-port=4369/tcp --permanent
sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent
sudo firewall-cmd --zone=public --add-port=25672/tcp --permanent
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent
//也可以在阿里云控制台的安全组和宝塔控制面板添加外网访问端口
image.png
image.png
重置防火墙
//添加完端口后要重置
sudo firewall-cmd --reload
项目中集成RabbitMQ框架
在SpringBoot项目中集成RabbitMQ框架,在配置文件中替换host:
image.png
这样项目就可以访问远程阿里云上的RabbitMQ服务了。
网友评论