小飞知识库 | YeLu🤠MiLu🤪 小飞知识库 | YeLu🤠MiLu🤪
  • 函数式编程
  • Spring
  • SpringMVC
  • SpringBoot
  • SpringCloud
  • Mybatis
  • JVM
  • JUC并发编程
  • 设计模式
  • 单元测试
  • Redis
  • RabbitMQ
  • mysql
  • oracle
  • linux
  • nginx
  • docker
  • elasticSearch
  • windows
  • 虚拟机
  • 监控系统
  • https
  • 内网穿透
  • 前端文章

    • JavaScript
  • 页面

    • HTML
    • CSS
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • TypeScript
    • JS设计模式总结
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 版本管理

    • Git笔记
  • 项目构建

    • maven
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • JAR包相关
  • 关于
  • 收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

YeLu

爱技术的YeLu🤠
  • 函数式编程
  • Spring
  • SpringMVC
  • SpringBoot
  • SpringCloud
  • Mybatis
  • JVM
  • JUC并发编程
  • 设计模式
  • 单元测试
  • Redis
  • RabbitMQ
  • mysql
  • oracle
  • linux
  • nginx
  • docker
  • elasticSearch
  • windows
  • 虚拟机
  • 监控系统
  • https
  • 内网穿透
  • 前端文章

    • JavaScript
  • 页面

    • HTML
    • CSS
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • TypeScript
    • JS设计模式总结
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 版本管理

    • Git笔记
  • 项目构建

    • maven
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • JAR包相关
  • 关于
  • 收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • RabbitMQ

    • 介绍
    • 安装
      • CentOS7安装
        • 1、卸载步骤
        • 2、下载erlang
        • 3、下载 MQ
        • 4、安装运行
        • 5、开启web管理页面
        • 6、新增管理用户
        • 7、常用命令
      • Docker安装
      • 管理页面参数介绍
        • 顶部标签
        • 概要信息
    • 卸载
    • 基础使用

    • 高级使用

  • 消息队列
  • RabbitMQ
YeLu🤠
2024-12-27
目录

安装

rabbitmq 使用erlang开发,依赖于erlang,所以需要先下载erlang,且版本要兼容:

可在官网查看erlang与rabbitmq的版本对应关系

https://www.rabbitmq.com/docs/which-erlang
1

# CentOS7安装

# 1、卸载步骤

# 查看erlang安装的相关列表
yum list | grep erlang
# 卸载 erlang 已安装的相关内容
yum -y remove erlang-*
1
2
3
4

# 2、下载erlang

点击如下位置进行 erlang (opens new window) 的下载

点击后跳转github-erlang-rpm (opens new window),跳转后选择红框处26的版本,以对应当前安装的4.0.3版本mq:

然后再点击Tags后选择版本下载

最后选择el7 x86的版本点击进行下载

# 3、下载 MQ

Installing RabbitMQ | RabbitMQ (opens new window)

点击如下内容

在Direct Downloads标题下点击下载

这里只会展示最新版本,如果你要下载其他版本,点击 Releases · rabbitmq/rabbitmq-server (opens new window)进行下载

如下点击标签

我这里下载的 4.0.3

选择 el8 noarch.rpm 下载

# 4、安装运行

都下载完成后,将安装包放入linux中,然后进入安装包存放目录,执行rpm -ivh安装命令:

cd /opt # 进入 opt目录
mkdir rabbitmq # 创建一个 rabbitmq 文件夹
1
2

将下载好的 erlang 和 mq rpm文件放入文件夹

执行如下命令:

安装erlang:rpm -ivh erlang-26.2.5.6-1.el7.x86_64.rpm
安装rabbitmq:rpm -ivh rabbitmq-server-4.0.3-1.el8.noarch.rpm
安装完成后使用 service rabbitmq-server start 命令启动 mq
1
2
3

执行service rabbitmq-server start可能出现的问题

[root@Centos7 rabbitmq]# service rabbitmq-server start
Redirecting to /bin/systemctl start rabbitmq-server.service
Job for rabbitmq-server.service failed because the control process exited with error code. See "systemctl status rabbitmq-server.service" and "journalctl -xe" for details.
1
2
3

启动后如果出现上面Job for rabbitmq-server.service failed.......的失败问题,需要使用如下命令进行配置:

vi /etc/rabbitmq/rabbitmq-env.conf
1

vi命令执行后,在文件里面添加这一行:NODENAME=rabbit@localhost,保存。 注意:rabbitmq-env.conf这个文件没有,打开之后自动创建。

完成配置后在重启并查看mq状态:

  • 重启命令:systemctl restart rabbitmq-server
  • 状态查看命令:systemctl status rabbitmq-server

# 5、开启web管理页面

使用rabbitmq-plugins enable rabbitmq_management命令,注意开启后需要使用systemctl restart rabbitmq-server命令重启rabbitmq服务

[root@localhost rabbitmq]# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@localhost:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@localhost...
The following plugins have been enabled:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch

started 3 plugins.
[root@localhost rabbitmq]# systemctl restart rabbitmq-server
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

完成管理页面配置后,还需要开放防火墙(如果有使用防火墙)参考:linux - 基于firewalld开启端口

  • 开放15672端口:firewall-cmd --zone=public --add-port=15672/tcp --permanent
  • 开放5672端口:firewall-cmd --zone=public --add-port=5672/tcp --permanent

通过浏览器使用15672端口访问管理页面

# 6、新增管理用户

新增管理员用户,rabbitmq默认自带一个guest用户,这里增加一个新的管理员用户方便以后使用

# 查看当前所有的用户
 rabbitmqctl list_users
# 查看guest用户所有拥有的权限
  rabbitmqctl list_user_permissions guest
# 删除原来的guest用户
  rabbitmqctl delete_user guest
# 添加一个新的用户
  rabbitmqctl add_user xff xff
# 给新用户设置个角色(tag)
   rabbitmqctl set_user_tags xff administrator
# 给新用户赋予资源权限
   rabbitmqctl set_permissions -p / xff ".*" ".*" ".*"
# 查看用户所拥有的权限
   rabbitmqctl list_user_permissions xff
1
2
3
4
5
6
7
8
9
10
11
12
13
14

角色(tag) 说明

(tag) administrator为用户角色,所有的角色为:

  • administrator 可以登录控制台、查看所有信息、可以对rabbitmq进行管理
  • monitoring 监控者, 可登录控制台,查看所有信息
  • policymaker 策略制定者, 可登录控制台,指定策略
  • managment 普通管理员, 可登录控制台

资源权限说明

  • -p /: –p 参数后面跟的是虚拟主机名称,这里 / 表示默认的根虚拟主机。
  • admin: 这是设置权限的用户账号。通常用于管理员操作。
  • ".*": 这是一个通配符模式,意味着对这个用户赋予了所有权限。"*" 代表任意字符,. 代表任意单个字符。
  • ".*" 和 ".*":这两个同样是指定该用户可以执行的所有操作,也是全部权限的表示。

set_permissions -p / xff ".*" ".*" ".*"命令的作用就是给用户 xff 在 / 虚拟主机上设置了完全权限,这意味着 admin 用户可以执行所有的操作,包括但不限于创建、删除队列,发布、取消消息等。

使用新账号登录:

进入后在Admin页签中如下图,用户处多了新加的xff:

至此安装运行完成

其他用户操作命令

rabbitmqctl change_password Username Newpassword 修改密码
rabbitmqctl delete_user Username 删除用户
rabbitmqctl list_users 查看用户清单
1
2
3

# 7、常用命令

# 查看当前所有的用户
rabbitmqctl list_users
# 查看guest用户所有拥有的权限
rabbitmqctl list_user_permissions guest
# 删除原来的guest用户
rabbitmqctl delete_user guest
# 添加一个新的用户
rabbitmqctl add_user xff xff
# 给新用户设置个角色(tag)
rabbitmqctl set_user_tags xff administrator
# 给新用户赋予资源权限
rabbitmqctl set_permissions -p / xff ".*" ".*" ".*"
# 查看用户所拥有的权限
rabbitmqctl list_user_permissions xff
# 修改密码
rabbitmqctl change_password Username Newpassword 
# 删除用户
rabbitmqctl delete_user Username

# 重启命令
systemctl restart rabbitmq-server
# 状态查看命令
systemctl status rabbitmq-server.service
systemctl status rabbitmq-server
# 设置开机启动
systemctl enable rabbitmq-server.service
# 启动服务
systemctl start rabbitmq-server.service
# 停止服务
systemctl stop rabbitmq-server.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

# Docker安装

先参考 Docker->docker安装 将linux安装好docker

点击Installing RabbitMQ | RabbitMQ (opens new window)下载网页如下

# latest RabbitMQ 4.0.x
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:4.0-management
1
2

该命令会自动安装rabbitmq 【不过是前台启动】,执行效果如下,可能会很慢,需要等待:

[root@localhost docker]# docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:4.0-management
Unable to find image 'rabbitmq:4.0-management' locally
4.0-management: Pulling from library/rabbitmq
de44b265507a: Pull complete 
1f73d79d4de9: Pull complete 
bf0246a10015: Pull complete 
04c2200eb82c: Pull complete 
f071906ce3b4: Pull complete 
c34563e7910a: Pull complete 
5461254c53b9: Pull complete 
042417f0b6e9: Pull complete 
410649ab8bd0: Pull complete 
3cbea2ae21d8: Pull complete 
Digest: sha256:4a2b95d53111fe589fb44b5152ff87253c63eb227eee21f39494f64d9d96c0b2
Status: Downloaded newer image for rabbitmq:4.0-management
=INFO REPORT==== 1-Jan-2025::02:39:47.080580 ===
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

但是这是前台运行,shell窗口无法执行其他操作,停止后执行如下命令转为后台启动

[root@localhost docker]# docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:4.0-management
599aa516a40d1e4b0e26900e470b8620450745453e5d74539e3e2a59eb968b01
1
2

查看镜像版本信息

[root@localhost docker]# docker run --rm rabbitmq:4.0-management rabbitmqctl version
4.0.5
1
2

最后使用你的机器ip:15672访问管理页面即可,默认用户名密码都是guest:

# 管理页面参数介绍

# 顶部标签

RabbitMQ 管理界面中的顶部标签(Overview、Connections、Channels、Exchanges、Queues and Streams、Admin)提供了对 RabbitMQ 集群的不同方面的管理和监控功能。以下是各个标签的详细含义和作用:

1. Overview(概览)

  • 功能:
    • 提供 RabbitMQ 集群或单个节点的总体运行状态。
    • 显示有关队列、交换机、连接、通道等的统计信息。
  • 包含的主要信息:
    • Totals:队列中的消息总数、消息速率(每分钟发布/确认/投递的消息数量)。
    • Nodes:显示所有节点的资源使用(内存、磁盘、CPU、Erlang 进程等)。
    • Churn Statistics:统计连接的创建和关闭速率。

2. Connections(连接)

  • 功能:

  • 显示所有客户端到 RabbitMQ 的 TCP 连接。

  • 允许您查看每个连接的详细信息。

  • 包含的主要信息:

    • 客户端 IP 和端口号。
    • 协议(如 AMQP 0-9-1)
    • 与该连接相关的通道数量。
    • 状态(如 running 或 idle)
  • 操作:

    • 可以强制关闭不需要的连接(Terminate)

3. Channels(通道)

  • 功能:
  • 显示 RabbitMQ 中所有的 AMQP 通道。
  • 通道是 RabbitMQ 的逻辑通信通道,客户端通过它们与 RabbitMQ 交换数据。
  • 包含的主要信息:
    • 通道的状态(如空闲或活动)。
    • 与通道关联的连接。
    • 消息流速率(如发布、确认)。
  • 操作:
    • 可以关闭特定通道以强制客户端重新创建。

4. Exchanges(交换机)

  • 功能:
  • 列出 RabbitMQ 中的所有交换机。
  • 交换机用于根据路由键将消息转发到适当的队列。
  • 包含的主要信息:
    • 交换机的类型(如 direct、fanout、topic、headers)。
    • 是否持久化(Durable)和是否自动删除(Auto-delete)。
    • 消息路由统计信息。
  • 操作:
    • 创建新的交换机。
    • 删除不需要的交换机。

5. Queues and Streams(队列和流)

  • 功能:
  • 列出所有队列和流(Streams),并显示每个队列的详细信息。
  • 队列是存储消息的地方,消费者可以从中获取消息。
  • 流是一种特殊的队列类型,适合高吞吐量消息。
  • 包含的主要信息:
    • 队列名称、队列中的消息数、消费者数量。
    • 消息的入队和出队速率。
    • 消费者的确认和拒绝统计。
  • 操作:
    • 查看消息详细信息(如消息内容和元数据)。
    • 删除队列或流。

6. Admin(管理)

  • 功能:
  • 配置和管理 RabbitMQ 的核心设置。
  • 包含的主要功能:
    • Users(用户管理):
      • 管理 RabbitMQ 的用户账户。
      • 配置权限(VHost 的访问权限)。
    • Policies(策略):
      • 定义 RabbitMQ 的策略,用于自动化操作(如队列的 TTL、镜像队列等)。
    • Permissions(权限管理):
      • 控制不同用户对交换机、队列的操作权限。
    • Parameters(插件参数):
      • 配置 RabbitMQ 插件(如 Shovel、Federation)。
    • Virtual Hosts(虚拟主机):
      • 创建和管理 RabbitMQ 的虚拟主机。
  • 操作:
    • 管理用户和策略。
    • 设置与虚拟主机和插件相关的参数。

这些标签页面让用户可以从不同维度监控和管理 RabbitMQ 集群,适合处理日常运维任务以及排查问题。

# 概要信息

在 RabbitMQ 管理界面的 Nodes 节点中,以下是各列的具体含义:

  • Name (名称)
  • 表示 RabbitMQ 节点的名称,格式通常为 rabbit@主机名。
  • 这个名称是由 RabbitMQ 启动时的主机名和 RabbitMQ 服务名称组成的,用来标识当前节点。
  • File Descriptors (文件描述符)
    • 当前节点使用的文件描述符数量和可用文件描述符的上限。
    • 绿色部分显示当前使用的文件描述符数。
    • 右侧数字显示总文件描述符限制(例如 1048576 available)。
    • 如果达到上限,可能会影响 RabbitMQ 的正常运行,因为文件描述符用于连接、日志等操作。
  • Erlang Processes (Erlang 进程)
    • 当前节点的 Erlang 虚拟机(BEAM)运行的进程数量和可用进程上限。
    • 绿色部分显示当前运行的 Erlang 进程数。
    • 右侧数字显示总进程限制(例如 1048576 available)。
    • Erlang 进程是 RabbitMQ 的基础构件,用于处理消息、通道、连接等。
  • Memory (内存)
    • 当前 RabbitMQ 节点使用的内存大小。
    • 绿色部分表示当前使用的内存量(例如 183 MiB)。
    • 右侧数字显示内存的高水位值(例如 4.6 GiB high watermark)。超过高水位时,RabbitMQ 可能会暂停处理消息以防止过载。
  • Disk Space (磁盘空间)
    • 当前 RabbitMQ 节点使用的磁盘空间量。
    • 绿色部分表示磁盘可用空间(例如 11 GiB)。
    • 右侧数字表示低水位值(例如 48 MiB low watermark)。如果磁盘可用空间小于低水位值,RabbitMQ 会停止接受新消息。
  • Uptime (运行时间)
    • 当前节点从启动到现在的运行时间,格式为 时:分:秒(例如 7m 3s 表示已运行 7 分钟 3 秒)。
  • Cores (核心数)
    • 当前节点使用的 CPU 核心数(例如 128)。
    • 核心数量可能与系统分配的资源有关。
  • Info (信息)
    • 包括节点的运行状态、类型或其他信息标志。
    • basic 表示基本信息。
    • 其他标志(如 rss)可能与内存管理有关。
  • Reset Stats (重置统计数据)
    • 按下 This Node 按钮可以重置该节点的统计数据。
    • 按下 All Nodes 按钮可以重置集群中所有节点的统计数据。

通过这些列,您可以直观地查看和监控 RabbitMQ 节点的资源使用和运行状态,便于判断节点是否运行正常。

最近更新: 2025/07/30, 15:37:56
介绍
卸载

← 介绍 卸载→

最近更新
01
服务端配置
07-30
02
frp 安装
07-30
03
Prometheus采集Springboot应用
02-20
更多文章>
Theme by Vdoing | Copyright © 2019-2025 | YeLu🤠MiLu🤪 | MIT License 蜀ICP备2024116879号 | 川公网安备51012202001998号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
欢迎你,我的朋友
看板娘