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

如何在本地和线上安装和配置RabbitMQ

文章目录

  • 一. 本地
    • 1.1 安装
    • 1.2 访问
    • 1.3 配置
    • 1.4 运行
  • 二. 线上
    • 2.1 服务器安装 RabbitMQ
      • 2.1.1 安装 DNF
      • 2.1.2 安装 RabbitMQ
      • 2.1.3 登录 web 管理界面
      • 2.1.4 创建用户
      • 2.1.5 禁用默认用户远程访问
      • 2.1.6 配置
      • 2.1.7 运行启动
    • 2.2 宝塔面板安装 RabbitMQ
      • 2.2.1 安装 RabbitMQ
      • 2.2.2 登录 web 管理界面
      • 2.2.3 创建用户
      • 2.2.4 禁用默认用户远程访问
      • 2.2.5 配置
      • 2.2.6 运行启动
  • 三. 初始化 RabbitMQ
    • 3.1 本地
    • 3.2 线上
  • 四. 启动项目
  • 五. 异常

一. 本地

1.1 安装

安装 Erlang + RabbitMQ,先安装 Erlang

  • Erlang 。https://www.erlang.org
  • 依赖安装完毕,就可以安装 RabbitMQ 了。(安装 RabbitMQ 直接双击 exe 程序即可安装)https://www.rabbitmq.com/docs/install-windows
  • 去查看系统服务,按[win + R],输入命令services.msc。找到 RabbitMQ 服务,右键 Start,状态为正在运行,搞定。
  • 安装rabbitmq-plugins(插件管理)。

windows 系统所有的脚本全是 bat 文件,这个命令不能直接运行;所以要给这条命令加上 .bat,然后复制这条命令。

rabbitmq-plugins.bat enable rabbitmq_management

找到安装 RabbitMQ 路径的位置,进入sbin目录,这里面都是 RabbitMQ 的执行脚本。

  • rabbitmq-server.bat:操作 RabbitMQ 服务器相关的命令。
  • rabbitmq-plugins.bat:用来安装 RabbitMQ 的插件。

在目录栏上输出cmd,打开命令提示符;以管理员身份运行。

将命令粘贴到此处,回车,显示已经启动了,并配置了一些插件。

这里显示要重新启动后才生效,输入以下命令。

# 关闭服务
net stop rabbitmqnet stop rabbitmq 
# 开启服务
net start rabbitmq 

1.2 访问

访问 http://localhost:15672,打开本地 web 管理页面;默认用户名密码都是 guest(文档有说明),点击Login

文档还有说明端口访问的端口号,15672 是监控面板的 UI;

ps.里面的 5672、15672 很重要,我们的应用程序之间就是通过 5672 端口来和 RabbitMQ 做链接的,就像 redis 的6379,es 的 9200是一样的。

登录 RabbitMQ 的管理页面。

就能看见 RabbitMQ 的管理页面。

1.3 配置

  rabbitmq:
    host: localhost
    password: guest
    username: guest
    port: 5672
    virtual-host: /
    listener:
      direct:
        acknowledge-mode: manual

username和 password是guest是默认的。

virtual-host: /

1.4 运行

二. 线上

下面几个常用端口是需要放行的

  • 3306 MySQL
  • 6379 Redis
  • 15672 RabbitMQ web 面板
  • 5672 RabbitMQ
  • 22 端口 SSH
  • 443 HTTPS
  • 80 HTTP

2.1 服务器安装 RabbitMQ

2.1.1 安装 DNF

yum install epel-release

语句执行后,输入y即可。

yum install dnf

语句执行后,输入y即可。

安装成功

2.1.2 安装 RabbitMQ

  1. 指定仓库
sudo dnf install -y https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm

  1. 安装 rabbitmq 默认会安装 erlang
sudo dnf install -y rabbitmq-server-3.3.5-34.el7

  1. 开启 web 管理页面
sudo rabbitmq-plugins enable rabbitmq_management

  1. 启动 RabbitMQ
sudo systemctl start rabbitmq-server

  1. 查看运行状态
systemctl status rabbitmq-server

  1. 设置开机自启动
sudo systemctl enable rabbitmq-server

2.1.3 登录 web 管理界面

访问http://服务器IP:15672;打开服务器web 管理页面;默认账号、密码都是 guest;要是报错就自己再仔细看看是不是输入错误了。

2.1.4 创建用户

**注意:**如果你打算在自己的服务器上部署 RabbitMQ,你必须知道在默认设置下,使用 guest 账号是无法访问的。为何会这样呢?原因在于系统安全性的需求。如果你想从远程服务器访问管理面板,你需要创建一个新的管理员账号,不能使用默认的 guest 账号,否则会被系统拦截,导致无法访问或登录。

设置。云服务器中输入下面的命令。云服务器或者tabby中输入下面命令即可。

添加新用户

rabbitmqctl add_user 'username' '2a55f70a841f18b97c3a7db939b7adc9e34a0f1b'

删除新用户

rabbitmqctl delete_user 'username'

新建虚拟主机

rabbitmqctl add_vhost my_vhost

新增加的用户赋予权限。

# First ".*" for configure permission on every entity
# Second ".*" for write permission on every entity
# Third ".*" for read permission on every entity
rabbitmqctl set_permissions -p "custom-vhost" "username" ".*" ".*" ".*"

2.1.5 禁用默认用户远程访问

点击右侧的 User guest,会发现该用户拥有管理员权限,但这仅限于本地访问。如果你直接上线并使用默认的管理员权限,你可以想象可能出现的问题。比如,攻击者可能会扫描你服务器的端口,并不断尝试用 guest 账号登录。一旦找到一个开放的端口并用 guest 登录,攻击者就可以入侵你的服务器,然后在消息队列中不断添加消息,填满你的服务器硬盘。因此,为了安全,系统默认关闭了 guest 账号的远程访问权限,这也是官方出于安全考虑的措施。

关闭允许 guest 用户远程访问,为了安全。

2.1.6 配置

  # rabbitmq 信息
  rabbitmq:
    host: *******
    password: ***
    username: *
    port: 5672
    listener:
      direct:
        acknowledge-mode: manual

等到部署到服务器上的时候
• host 服务器 IP 或者 域名
• port 端口默认 5672
• password 密码
• username 账号

2.1.7 运行启动

2.2 宝塔面板安装 RabbitMQ

下面几个端口是需要放行的

  • 3306 MySQL
  • 6379 Redis
  • 15672 RabbitMQ web 面板
  • 5672 RabbitMQ
  • 22 端口 SSH
  • 443 HTTPS
  • 80 HTTP

2.2.1 安装 RabbitMQ

  1. 安装。宝塔面板安装rabbitmq。
  2. 宝塔面板、服务器同时开放5672、15672的端口。

面板的管理员权限中更改管理员用户名和密码

2.2.2 登录 web 管理界面

  1. 访问http://服务器IP:15672;打开服务器web 管理页面。
  2. 账号、密码是 上面的管理员用户名和密码;要是报错就自己再仔细看看是不是输入错误了。
  3. 切忌不要使用新创建用户的用户名和密码;无法登录。

2.2.3 创建用户

**注意:**如果你打算在自己的服务器上部署 RabbitMQ,你必须知道在默认设置下,使用 guest 账号是无法访问的。为何会这样呢?原因在于系统安全性的需求。如果你想从远程服务器访问管理面板,你需要创建一个新的管理员账号,不能使用默认的 guest 账号,否则会被系统拦截,导致无法访问或登录。

  1. 创建用户

  1. 允许远程连接

执行好之后添加好的用户 Can access virtual hosts 那一栏就不会是黄颜色的了。

2.2.4 禁用默认用户远程访问

点击右侧的 User guest,会发现该用户拥有管理员权限,但这仅限于本地访问。如果你直接上线并使用默认的管理员权限,你可以想象可能出现的问题。比如,攻击者可能会扫描你服务器的端口,并不断尝试用 guest 账号登录。一旦找到一个开放的端口并用 guest 登录,攻击者就可以入侵你的服务器,然后在消息队列中不断添加消息,填满你的服务器硬盘。因此,为了安全,系统默认关闭了 guest 账号的远程访问权限,这也是官方出于安全考虑的措施。

关闭允许 guest 用户远程访问,为了安全。

2.2.5 配置

  # rabbitmq 信息
  rabbitmq:
    host: *******
    password: ***
    username: *
    port: 5672
    listener:
      direct:
        acknowledge-mode: manual

等到部署到服务器上的时候
• host 服务器 IP 或者 域名
• port 端口默认 5672
• password 密码
• username 账号

2.2.6 运行启动

三. 初始化 RabbitMQ

3.1 本地

执行完需要 初始化的 Main 方法

执行完这两个 初始化的 Main 方法之后,打开本地 web 管理页面;发现队列中有多出来的初始化队列即可。

3.2 线上

配置Host、Usernamen、Password、Port;Port如果是默认的5672可以不配置。

其余初始化和本地一样。

四. 启动项目

  1. 启动MainApplication。
  2. 直接点击 Enable annotation processing
  3. 访问接口文档

五. 异常

如果说你首次执行比bi项目,想要使用消息队列功能的话

启动项目时,有下面的异常:

org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to declare queue(s):[bi_queue]

原因:这个队列还没声明,需要跑一段代码声明,跑一次就行了

先要初始化自己创建队列

执行main方法后,再次执行项目即可。

直接点击 Enable annotation processing
然后访问接口文档。


http://www.kler.cn/a/551689.html

相关文章:

  • 交换机三层转发原理(涵盖ARP,ICMP,IP协议)
  • 探秘 Python 枚举类型:从基础到实战的深度指南
  • pyqt写一个待办程序
  • IIS asp.net权限不足
  • Android Studio:用handler实现计数
  • 基于遗传算法排课系统
  • Flutter 3.29.0 新特性 CupertinoNavigationBar 可配置bottom属性
  • AI(人工智能)会给嵌入式领域带来哪些机遇与挑战?
  • golang常用库之-swaggo/swag根据注释生成接口文档
  • 电磁铁在生产与生活中的广泛应用
  • Ubuntu 24.04.1 LTS 本地部署 DeepSeek 私有化知识库
  • QT QLineEdit如何支持文件拖放
  • 项目2 数据可视化--- 第十五章 生成数据
  • 【开源免费】基于SpringBoot+Vue.JS个人博客系统(JAVA毕业设计)
  • 在Nodejs中使用kafka(四)消息批量发送,事务
  • Ollama 部署本地 Deepseek-R1 大模型及可视化聊天工具指南
  • springboot399-中文社区交流平台(源码+数据库+纯前后端分离+部署讲解等)
  • mapbox基础,使用geojson加载circle圆点图层
  • 汽车通信未来新趋势:Eclipse uProtocol
  • 无第三方依赖 go 语言工具库