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

CentOS 7 环境下 RabbitMQ 的部署与 Web 管理界面基本使用指南

目录

  • 前言
  • 1.安装docker
  • 2.防火墙开放端口
  • 3. docker部署
  • 4.访问 Web 控制台界面
  • 5.详解RabbitMQ控制台
    • Web 管理界面概览
    • 用户与权限规则
    • 虚拟主机 (vhost) 逻辑隔离
    • 交换机(Exchanges)和队列(Queues)

前言

这篇博客讲述如何在centos7系统上安装、配置目前业内使用最广泛的消息中间件RabbitMQ,以及web控制台的基本操作,这篇博客是通过docker进行安装部署的,对docker不熟悉的朋友可以参考我的这篇博客docker详解。

1.安装docker

如果你的系统还没有安装 Docker,需要先安装docker,centos系统直接通过yum工具安装即可,可以通过以下命令安装并启动 Docker

sudo yum update -y                # 更新系统包
sudo yum install -y docker       # 安装 Docker
sudo systemctl start docker      # 启动 Docker 服务
sudo systemctl enable docker     # 设置 Docker 开机自启

2.防火墙开放端口

RabbitMQ有两个重要的访问端口,web控制台服务和消息收发服务,一定要确保防火墙开放了这两个端口,(注意默认端口占用的情况)

sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent   # AMQP 协议端口
sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent  # 管理界面 Web 端口
sudo firewall-cmd --reload  # 重新加载防火墙配置

3. docker部署

  1. 拉取 RabbitMQ 镜像
    我们要拉取包含 Web 控制台界面的 management版本镜像,这样可以通过浏览器方便地管理 RabbitMQ。

    # 拉取当前官方认定的最新稳定版本,且该版本已预装了 RabbitMQ 的控制台插件
    sudo docker pull rabbitmq:management
    # 如果需要拉取特定版本的带控制台插件的 RabbitMQ 镜像,需要指定具体版本号
    sudo docker pull rabbitmq:3.12.0-management
    
  2. 配置数据卷,创建数据持久化目录
    为了防止容器删除或重启时数据丢失,我们要将 RabbitMQ 的数据目录挂载到宿主机上。这个目录是用来持久化RabbitMQ 的交换机、队列、消息等数据。

    # 这个目录用于映射容器内的 /var/lib/rabbitmq目录
    sudo mkdir -p /usr/local/rabbitmq/data  # 或者其他你喜欢的路径
    
  3. 运行 RabbitMQ 容器
    使用 docker run命令启动 RabbitMQ 容器

    sudo docker run -d \--name rabbitmq \-p 5672:5672 \       # 映射 AMQP 协议端口-p 15672:15672 \     # 映射管理界面 Web 端口-v /usr/local/rabbitmq/data:/var/lib/rabbitmq \  # 挂载数据卷用于持久化-e RABBITMQ_DEFAULT_USER=admin \    # 设置默认用户名-e RABBITMQ_DEFAULT_PASS=admin123 \ # 设置默认用户密码--restart=unless-stopped \          # 容器异常退出时自动重启(可选)rabbitmq:management
    
  4. 查看容器状态和日志
    运行状态为up, 启动日志中没有error信息,就说明部署成功

    sudo docker ps  
    sudo docker logs -f rabbitmq  
    

4.访问 Web 控制台界面

  1. 打开浏览器,访问 http://<你的CentOS服务器IP地址>:15672。
    在这里插入图片描述
  2. 使用你在 docker run命令中通过环境变量设置的用户名(admin)和密码(admin123)登录。如果能看到 RabbitMQ 的管理后台,说明安装成功
    在这里插入图片描述

5.详解RabbitMQ控制台

Web 管理界面概览

登陆成功后,我们会看到上面几个重要的选项,这些选项组成了RabbitMQ 的核心操作和功能。
在这里插入图片描述

选项核心功能
​​Overview (概览)​监控全局消息堆积数(Ready, Unacked, Total)、消息流转速率、连接/信道/队列/消费者总数,以及节点资源状态(内存、磁盘)
​​Connections (连接)​查看所有生产者和消费者的 TCP 连接状态(运行中 running 或空闲 idle)、客户端地址等
​​​​Channels (信道)​​监控基于连接创建的轻量级信道详情,如未确认消息数 (Unacked)、预取数 (Prefetch) 和消息处理速率
​​Exchanges (交换机)​​管理所有交换机,查看其类型(direct, fanout, topic, headers)、绑定和消息路由速率
​​Queues (队列)​​​核心监控区​​。查看各队列的消息数(Ready, Unacked)、状态、消费者数量,并可进行发布消息、清空队列等操作
Admin (管理)​​​​​集中管理用户、虚拟主机 (vhost)、策略 (Policies) 和权限

用户与权限规则

  1. 在Admin选项中我们可以创建用户信息,包括用户、密码、角色标签。用户创建在RabbitMQ中是一个非常重要的操作,因为rabbitMQ基于多租户隔离机制,一般情况下,用户会创建或者归属于某一个或者多个虚拟主机(vhost)​​,而虚拟主机(vhost)​​拥有自己​​完全独立​​的交换机、队列、绑定和权限体系。因此,客户端与RabbitMQ建立连接时,需要指定用户、虚拟主机信息,才能访问目标交换机和队列
    在这里插入图片描述

  2. 在 ​​Admin > Users​​ 中管理用户,其权限由 ​​角色标签 (Tags)​​ 决定,从高到低如下

角色权限说明
administrator​最高权限,可管理用户、vhost、策略、插件等一切事务。
monitoring可查看所有连接、信道、节点状态等监控信息,但不能修改配置
policymaker可在其有权限的 vhost 内管理策略和参数
management普通管理者,可管理其有权限的 vhost 内的资源(队列、交换机等
​​none无管理权限,通常是普通的生产或消费用户

虚拟主机 (vhost) 逻辑隔离

  1. 我们可以在Admin选项中方便创建当前用户的虚拟主机,然后在当前虚拟主机上创建交换机和队列
    在这里插入图片描述

  2. 虚拟主机 (vhost)​​ 是 RabbitMQ 中实现​​逻辑隔离和多租户支持​​的核心机制,作用类似于pg或者mysql数据库中的schema和database,每个虚拟主机vhost相当于一个独立的迷你 RabbitMQ 服务器**,拥有自己​​完全独立​​的交换机、队列、绑定和权限体系**。不同 vhost 下的资源互不可见,即使同名也互不干扰。

  3. 默认vhost​​:安装后存在一个名为 / 的默认虚拟主机vhost。

  4. 总结一下,虚拟主机 (vhost)​​ 主要是用于隔离不同环境(如 /dev, /test, /prod)或不同项目/团队,客户端连接时必须指定要访问的 vhost

交换机(Exchanges)和队列(Queues)

  1. 交换机和队列是消息中间件最重要的两个概念,一般实际开发中,交换机负责将消息路由到指定队列,然后队列将消息发送到监听的消费者客户端。
  2. 我们在Exchanges选项可以方便的创建交换机,创建或管理交换机时需特别关注:
  • 类型​​:决定了消息路由到队列的规则
类型规则
Direct定向路由,精确匹配 Routing Key
Fanout广播到所有绑定队列
Topic主题路由, 使用通配符 (*, #) 匹配 Routing Key
Headers基于消息头 (Headers) 键值对匹配
  • 特性​​:可设置为 ​​持久化 (Durable)​​,以在 Broker 重启后依然存在
    ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a9fb363330cf4ead988a050a488c9e70.png
  1. 在队列( ​​Queues)​​ 选项卡中,队列的行为和特性可通过多种参数精细控制,包括持久化、自动删除、队列长度限制、死信交换机等等,可以在创建队列时进行配置。
    在这里插入图片描述
http://www.dtcms.com/a/465706.html

相关文章:

  • 【AT指令解析】TencentOS Tiny AT指令解析源码分析1-简介
  • centos/cuos如何开启软件源
  • Java常见业务场景之批处理优化:从稳定性、性能、数据一致性、健壮性、可观测性五大维度,系统提供批处理优化方案
  • 网站建设拟采用的技术路线深圳互联网公司招聘
  • 人工智能学习:逻辑回归
  • 23种设计模式——命令模式(Command Pattern)
  • 网站空间用万网的 域名不在万网gta5 网站正在建设中
  • 枚举单例模式:Java单例实现的终极方案解析
  • 1.单例模式有哪几种常见的实现方式?
  • 安蓉建设总公司网站服装设计官网
  • PyTorch的安装与使用
  • 解决办法:win11连接蓝牙的时候每次连接都是100%的音量
  • foundry创建项目
  • 网站整体地图怎么做招设计师在哪里找
  • C#学习小笔记(完整版)—— Patience
  • 解决MySQL8.0及其更高版本的两个安全问题——及其配置MySQL实现SSL/TLS加密通信、caching_sha2_password通信
  • Node.js性能优化:从事件循环到内存管理
  • Node.js核心模块:fs、path与http详解
  • 企业级UDP文件传输工具如何重塑数据交换格局
  • 在JavaScript / Node.js中,Web服务器参数处理与编码指南
  • 佛山新网站建设服务网站中文域名好吗
  • Python打包成exe(windows)或者app(mac)
  • 网站开发都做什么小程序电商系统开发
  • 《电子商务网站开发实训》总结抖音代运营 广州
  • 《MySQL索引优化实战从B+树原理到慢查询性能提升》
  • 深入理解MySQL索引原理B+树如何提升查询性能
  • Spring Boot 整合 Thymeleaf 生成 HTML 页面教学
  • 深入解析MySQL索引优化从B+树原理到实战性能调优
  • MySQL索引优化的艺术从B+树原理到慢查询性能提升实践
  • 解密MySQL索引优化从B+树原理到实战性能提升