当前位置: 首页 > news >正文

欧拉22.03系统安装RabbitMQ-3.6.10

一、下载,欧拉系统是对应centos8的版本,包名带el8:

(RabbitMQ的安装需要首先安装Erlang,因为它是基于Erlang的VM运行的。)
https://github.com/rabbitmq/erlang-rpm/releases/download/v24.3.4/erlang-24.3.4-1.el8.x86_64.rpm
https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.10.7/rabbitmq-server-3.10.7-1.el8.noarch.rpm

上传到文件夹,我的放到如下文件夹:

mkdir /data/rabbit
cd /data/rabbit

二、安装

1、安装编译 Erlang 所需的开发工具和库:

sudo yum install -y make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel autoconf tar

在这里插入图片描述

2、安装 Erlang

cd /data/rabbit
rpm -ivh erlang-24.3.4-1.el8.x86_64.rpm

在这里插入图片描述
安装完成后,查询版本验证

erl -version

在这里插入图片描述

3、安装rabbitmq

yum -y install rabbitmq-server-3.10.7-1.el8.noarch.rpm

在这里插入图片描述

4、启动/关闭 RabbitMQ 服务

4.1、启动 RabbitMQ 服务

systemctl start rabbitmq-server #或 rabbitmq-server -detached

4.2、查看 RabbitMQ 状态
验证安装成功,服务正常启动
#查看状态,如下图,则 RabbitMQ 服务已启动

systemctl status rabbitmq-server #或 rabbitctl status

在这里插入图片描述
#RabbitMQ 默认占用 5672 端口,如果启用了 WEB 管理界面插件,还将占用 15672 端口

lsof -i:5672 

#查看指定端口是否被占用,看到如下图结果,5672 端口已被占用
在这里插入图片描述

4.4、停止 RabbitMQ 服务

systemctl stop rabbitmq-server #或 rabbitmqctl stop

5、启用 rabbitmq_management 插件
要使用 WEB 界面管理 RabbitMQ 需要启用 rabbitmq_management 插件,只需启动一次,下次启动 RabbitMQ 就会自动启动插件。
#查看 15672 端口是否被 RabbitMQ 占用

 lsof -i:15672

#激活插件

rabbitmq-plugins enable rabbitmq_management

在这里插入图片描述

#激活成功后,再次查看 15672 端口,如下图,发现被 RabbitMQ 监听
在这里插入图片描述

5.1、浏览器访问

访问 URL: http://主机IP:15672,发现需要登录。
在这里插入图片描述

查看用户列表:

rabbitmqctl list_users

在这里插入图片描述
RabbitMQ 安装完成后会有一个内置用户 guest,低版本的 RabbitMQ 可以直接使用此用户登录,但高版本不可以,需要自己创建用户,并授予权限。

5.2、创建用户
#例如:xxc 为用户名,xxc@123 为密码

rabbitmqctl add_user xxc  xxc@123

执行完毕看到如下提示:
Adding user “xxc” …
Done. Don’t forget to grant the user permissions to some virtual hosts! See ‘rabbitmqctl help set_permissions’ to learn more.

赋予用户权限,有哪几种权限?
#administrator 为最高权限

rabbitmqctl set_user_tags xxc administrator

这时候就可以登录了,输入用户名密码,点击 login 看到如下界面,可以使用它来方便的管理 RabbitMQ

三、java服务端连接rabbitmq,报错及解决方案

配置连接信息:

spring:rabbitmq:host: 127.0.0.1port: 5672username: xxcpassword: xxc@123virtual-host: /

java控制台报错1:

2025-11-13 10:32:29.548 INFO [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#3-60]o.s.amqp.rabbit.connection.CachingConnectionFactory.connectAddresses:636 -Attempting to connect to: [10.23.190.12:5672]
2025-11-13 10:32:29.553 WARN [AMQP Connection 10.23.190.12:5672]com.rabbitmq.client.impl.ForgivingExceptionHandler.log:115 -An unexpected connection driver error occured (Exception message: Socket closed)

在这里插入图片描述
查看rabbitmq报错日志:

[root@service12 nft]# cd /var/log/rabbitmq/
[root@service12 rabbitmq]# tail -f rabbit@service12.log 

关键报错:
[error] <0.6246.0> access to vhost ‘/’ refused for user ‘xxc’

从日志可以看到:
用户 ‘xxc’ 尝试连接虚拟主机 ‘/’
RabbitMQ 拒绝访问:access to vhost ‘/’ refused for user ‘xxc’
连接被关闭

解决方案:检查并修复用户权限:

# 1. 列出所有用户,确认用户是否存在
rabbitmqctl list_users# 2. 列出所有虚拟主机
rabbitmqctl list_vhosts# 3. 列出用户当前的权限
rabbitmqctl list_user_permissions xxc# 4. 为用户 xxc 授予对虚拟主机 '/' 的权限
rabbitmqctl set_permissions -p / xxc ".*" ".*" ".*"# 5. 验证权限设置
rabbitmqctl list_user_permissions xxc

报错2:

o.s.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations:726 -Failed to declare queue: reBindAddress
org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to declare queue(s):[reBindAddress]
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue ‘reBindAddress’ in vhost ‘/’, class-id=50, method-id=10)
在这里插入图片描述
从错误信息可以看到:

✅ 连接成功:Created new connection

❌ 队列声明失败:Failed to declare queue: reBindAddress

错误原因:NOT_FOUND - no queue ‘reBindAddress’ in vhost ‘/’

解决方案:在 RabbitMQ 中创建缺失的队列

# 使用 curl 通过管理 API 创建队列
curl -u xxc:xxc@123 -X PUT http://127.0.0.1:15672/api/queues/%2F/reBindAddress \-H "Content-Type: application/json" \-d '{"durable":true, "auto_delete":false, "arguments":{}}'

查看队列已存在:

[root@service12 nft]# rabbitmqctl list_queues | grep reBindAddress
reBindAddress	0
[root@service12 nft]# 
http://www.dtcms.com/a/605798.html

相关文章:

  • C语言编译器的选择与优化技巧 | 如何选择适合的C语言编译器以提高代码性能
  • 高通移动:编译成功后,用Unpacking Tool打包,再烧录
  • 文档切片(Document Chunking)
  • AEC-Q100 stress实验详解#5——PTC(功率温度循环)
  • MacOS彻底清除docker及image
  • 【3ds Max动画】烟花:超级喷射粒子,荧光粒子效果
  • 做网站的内容资源广告装饰 技术支持 东莞网站建设
  • 脑机接口核心产业链研发实力:翔宇医疗、三博脑科、汉威科技、科大讯飞、创新医疗,5家龙头公司研发实力深度数据
  • AI驱动与人才争夺战:互联网行业步入新一轮扩张期
  • Java-171 Neo4j 备份与恢复 + 预热与执行计划实战
  • 《信息存储与管理》完整复习手册
  • 西门子1500PLC(模拟器)与Matlab经由Modbus通信联合PID仿真
  • 【LeetCode】110. 平衡二叉树
  • LeetCode 423 - 从英文中重建数字
  • 建设部信息中心网站提供模板网站制作多少钱
  • 徐州集团网站建设关键词排名霸屏代做
  • 将现有git项目推送到gitcode的方法
  • 鸿蒙PC生态三方软件移植:开发环境搭建及三方库移植指南
  • F280049C学习笔记之SDFM
  • Linux内存管理深度解析:从首次访问缺页处理到NUMA策略的完整架构
  • 北京网站设计与制作品牌网站建设策划书
  • Java 9+ 模块化系统(Jigsaw)实战:从 Jar 地狱到模块解耦的架构升级
  • Claude Code 深度解析:架构、工作原理与常见误解
  • 珠海市企业网站制作品牌仿简书wordpress博客主题
  • 文化传媒 网站设计成都网站建设:
  • Python实用指南:python + pyqt
  • SSM基于J2EE的山西旅游网站的设计与实现iiqmx(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 如何通过 WebSocket 接入期货实时行情接口
  • 开源 Objective-C IOS 应用开发(六)Objective-C 和 C语言
  • 网站栅格安装网站模版视频