阿里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系统 image.png 下载完成后将两个rpm文件都放到linux服务器上

image.png

我放置在了/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就成功运行起来了

image.png

默认情况下rabbitmq没有安装web端的客户端软件,需要我们自己安装

打开RabbitMQWeb管理界面插件

rabbitmq-plugins enable rabbitmq_management

远程连接

目前我们做的仅仅是将Rabbitmq在服务器上运行起来,但是我们的电脑上仍然无法访问直接通过ip访问

打开防火墙

这里要注意!!5672是rabbitmq的端口,15672是rabbitmq管理页面的端口 宝塔linux的防火墙:

服务器的防火墙:

image.png

配置完成后我们暂时可以通过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 /

如果能成功显示则完成配置 image.png

这时候,你就可以在浏览器上通过公网访问rabbitmq的管理界面了

image.png

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 image.png

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP