RabbitMQ 安装教程

RabbitMQ 安装教程

特殊说明

因为RabbitMQ基于Erlang开发,所以安装时需要先安装Erlang

RabbitMQErlang版本对应关系

查看地址:www.rabbitmq.com/which-erlan...

环境选择

Erlang: 23.3及以上

复制代码
RabbitMQ`: `3.10.1

Windows 安装

1. 安装Erlang

  • 根据图形化界面安装完成即可
  • 配置环境变量ERLANG_HOME, 值为Erlang安装目录
  • 增加Erlang变量至Path,值为%ERLANG_HOME%\bin
  • 验证,打开cmd命令框,输入erl(假如没有生效,建议重启电脑)

2. 安装RabbitMQ

  • 下载地址:www.rabbitmq.com/install-win...
  • 根据图形化界面安装完成即可
  • 查看状态,打开cmd,进入到rabbitmqsbin目录下,执行rabbitmqctl status
  • 安装管理页面插件,在sbin目录下执行rabbitmq-plugins enable rabbitmq_management
  • 启动,在sbin目录下,执行rabbitmq-server
  • 打开管理页面,输入用户名(guest)和密码(guest

3. 踩坑

启动时出现端口(25672)占用情况

cmd 复制代码
cmd复制代码2022-05-17 11:36:51.529000+08:00 [warn] <0.129.0> Using RABBITMQ_ADVANCED_CONFIG_FILE: c:/Users/zbc/AppData/Roaming/RabbitMQ/advanced.config
2022-05-17 11:36:52.015000+08:00 [erro] <0.129.0>
2022-05-17 11:36:52.015000+08:00 [erro] <0.129.0> BOOT FAILED
2022-05-17 11:36:52.015000+08:00 [erro] <0.129.0> ===========
2022-05-17 11:36:52.015000+08:00 [erro] <0.129.0> ERROR: could not bind to distribution port 25672, it is in use by another node: rabbit@LAPTOP-0KRHB2H6
2022-05-17 11:36:52.015000+08:00 [erro] <0.129.0>

BOOT FAILED
===========
ERROR: could not bind to distribution port 25672, it is in use by another node: rabbit@LAPTOP-0KRHB2H6
  • 查找端口占用netstat -aon|findstr "25672"
  • 关闭taskkill/pid 24520 /F24520pid
  • 重新启动

docker安装

shell 复制代码
shell
复制代码docker run --name rabbitmq -d -p 15672:15672 -p 5672:5672 rabbitmq:management

Linux安装

环境:CentOS 7

1. 安装Erlang

  • 安装
shell 复制代码
shell
复制代码sudo yum install erlang
  • 验证
shell 复制代码
shell
复制代码erl
  • 踩坑

由于CentOS 7版本限制,不能下载最新的erlang 24等版本,所以一直卡在缺失依赖等问题上,最后选择CentOS上的当前相对比较新的版本23,最后也通过make install安装成功最新版本,但是对rabbitmq启动时有影响。

2. 安装RabbitMQ

  • 下载rabbitmq,下载比较慢可以先下载,然后再上传
shell 复制代码
shell
复制代码wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.10.1/rabbitmq-server-3.10.1-1.el8.noarch.rpm
  • 安装
shell 复制代码
shell
复制代码 sudo rpm -ivh /home/zbc/rabbitmq-server-3.10.1-1.el8.noarch.rpm
  • 验证
shell 复制代码
shell
复制代码whereis rabbitmqctl
  • 启用可视化插件
shell 复制代码
shell
复制代码sudo rabbitmq-plugins enable rabbitmq_management
  • 启动
shell 复制代码
shell
复制代码sudo systemctl start rabbitmq-server
  • 关闭防火墙,不关闭防火墙,外面不能访问
shell 复制代码
shell
复制代码systemctl stop firewalld.service

3. 访问控制台界面

  • 访问地址:http://ip:15672
  • 创建用户、设置权限,在其他机器不能使用guest账号了,因为guest账号只能在本机登录
shell 复制代码
shell复制代码#创建用户名admin,密码123456
sudo rabbitmqctl add_user admin 123456
#设置admin为超级管理员
sudo rabbitmqctl set_user_tags admin administrator
#重启服务
sudo systemctl restart rabbitmq-server
  • 登录

要是遇到打不开,检查http请求,必须用http,不能用https

常用命令

服务的启动与关闭

shell 复制代码
shell复制代码# 启动
rabbitmqctl start_app
systemctl start rabbitmq-server

# 关闭
rabbitmqctl stop_app
systemctl stop rabbitmq-server

# 重启
systemctl restart rabbitmq-server

用户管理

shell 复制代码
shell复制代码#创建用户
rabbitmqctl add_user {username} {password}
#删除用户
rabbitmqctl delete_user {username}
#修改密码
rabbitmqctl change_password {username} {newPassword}

#用户列表
rabbitmqctl  list_users

#设置角色 tag可选administrator monitoring policymaker management
rabbitmqctl set_user_tags {username} {tag ...}

插件管理

shell 复制代码
shell复制代码#开启某个插件
rabbitmq-plugins enable {pluginName}
#关闭某个插件
rabbitmq-plugins disable {pluginName}

权限管理

shell 复制代码
shell复制代码#设置权限
#Vhostpath:Vhost路径
#user:用户名
#Conf:一个正则表达式match哪些配置资源能够被该用户访问
#Write:一个正则表达式match哪些配置资源能够被该用户读
#Read:一个正则表达式match哪些配置资源能够被该用户访问
set_permissions [-p vhostpath] {user} {conf} {write} {read}
相关推荐
JAVA面经实录9177 小时前
RocketMQ全套学习知识手册
java·kafka·rabbitmq·rocketmq
牛油果子哥q13 小时前
【Redis分布式高阶篇】Redis分布式锁底层精讲:从裸锁缺陷到Redisson源码级落地,解决超时释放、锁失效、主从漏洞、锁续约难题
数据库·redis·分布式
2601_9578885614 小时前
分布式新媒体架构:短视频矩阵系统的技术痛点、算法规则与效率优化实践
分布式·架构·媒体
闪电悠米14 小时前
黑马点评-Redisson-02_reentrant_lock
java·spring boot·redis·分布式·缓存
2601_9578848415 小时前
分布式媒体矩阵系统的任务调度架构:高并发分发队列与背压控制控制实践
分布式·矩阵·媒体
Kyrie_Li16 小时前
Kafka-安装和配置(搭建环境)
分布式·kafka
逻极16 小时前
MongoDB 从入门到精通:文档数据库的灵活之道
分布式·mongodb·nosql·聚合框架
大G的笔记本17 小时前
分布式事务实战
分布式
AI浩17 小时前
梯度累积与 Micro-Batch 设计分层式精讲:有效批次、显存边界与分布式同步
开发语言·分布式·batch
l1t18 小时前
DeepSeek总结的从 DeepSeek 到 Quack:分布式 DuckDB 的梦想何时开始变得真实
数据库·分布式