阿里Linux3(基于CentOS8)部署rabbitmq
下载Rabbitmq
在Github官网上可以找到所有版本的Rabbitmq-server,挑选一个稳定的版本下载 https://github.com/rabbitmq/rabbitmq-server/tags
下载erlang
Erlang和RabbitMQ版本对照:https://www.rabbitmq.com/which-erlang.html
这里我安装的rabbitmq是3.13版本的,因此我选的erlang是26大版本,各位鱼友挑选对应的版本
erlang下载地址:https://packagecloud.io/rabbitmq/erlang
其中el8代表——CentOs8系统
下载完成后将两个rpm文件都放到linux服务器上
我放置在了/usr/rabbitmq的目录中
解压安装
到命令行中执行以下命令:(部分命令失败可能因为权限不足)
▼text复制代码# 解压 rpm -Uvh erlang-26.2.5.3-1.el8.x86_64.rpm # 安装 yum install -y erlang # 检验erl是否安装成功 erl -v
安装Rabbitmq
Rabbitmq的安装需要该插件
▼text复制代码yum install -y socat
安装Rabbitmq
▼text复制代码# 解压 rpm -Uvh rabbitmq-server-3.13.7-1.el8.noarch.rpm # 安装 yum install -y rabbitmq-server
启动rabbitmq
▼text复制代码# 启动rabbitmq systemctl start rabbitmq-server # 查看rabbitmq状态 systemctl status rabbitmq-server
看到这里是active就成功运行起来了
默认情况下rabbitmq没有安装web端的客户端软件,需要我们自己安装
打开RabbitMQWeb管理界面插件
rabbitmq-plugins enable rabbitmq_management
远程连接
目前我们做的仅仅是将Rabbitmq在服务器上运行起来,但是我们的电脑上仍然无法访问直接通过ip访问
打开防火墙
这里要注意!!5672是rabbitmq的端口,15672是rabbitmq管理页面的端口 宝塔linux的防火墙:
服务器的防火墙:
配置完成后我们暂时可以通过ip:15672访问到rabbitmq管理界面的登录页
尝试用username:guest password:guest登录
你会发现登陆不进去!!!
这是因为这样的登录方式仅允许localhost登录,因此我们是无法直接通过默认账密进行登录,必须自己添加一个远程登录的用户
创建远程登录用户
▼text复制代码# 添加用户 rabbitmqctl add_user 用户名 密码 # 设置用户角色,分配操作权限 rabbitmqctl set_user_tags 用户名 角色 # 为用户添加资源权限(授予访问虚拟机根节点的所有权限) rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"
角色有四种:
administrator:可以登录控制台、查看所有信息、并对rabbitmq进行管理monToring:监控者;登录控制台,查看所有信息policymaker:策略制定者;登录控制台指定策略managment:普通管理员;登录控制
▼text复制代码# 检验是否成功创建用户并分配资源 rabbitmqctl list_permissions -p /
如果能成功显示则完成配置

这时候,你就可以在浏览器上通过公网访问rabbitmq的管理界面了
JAVA连接Rabbitmq
导入相关依赖:
▼text复制代码<!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client --> <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.21.0</version> </dependency>
修改配置文件:
▼text复制代码spring: rabbitmq: host: xx.xx.xx.xx username: jerry_chen password: xxxxxx
使用客户端正常连接,传入对应的host,username,password
▼text复制代码ConnectionFactory factory = new ConnectionFactory(); factory.setHost(host); factory.setUsername(username); factory.setPassword(password); Connection connection = factory.newConnection(); Channel channel = connection.createChannel();
成功通过Java连接到服务器的rabbitmq

