启动命令:
service rabbitmq-server start
重启命令:
service rabbitmq-server restart
停止命令:
service rabbitmq-server stop
RabbitMq的安装
erlang 与 rabbitmq 正确的版本匹配 https://www.rabbitmq.com/which-erlang.html
在线安装
安装rabbitmq需要先安装Erlang。
下载erlang rpm包:
wget http://packages.erlang-solutions.com/erlang/rpm/centos/6/x86_64/erlang-22.0.4-1.el6.x86_64.rpm
下载socat rpm包:
wget https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/socat-1.7.3.2-2.el7.x86_64.rpm
下载rabbitmq rpm包:
wget --content-disposition https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/6/rabbitmq-server-3.7.15-1.el6.noarch.rpm/download.rpm
安装rpm包:
# 安装RabbitMq: rpm -ivh erlang-22.0.4-1.el6.x86_64.rpm --force --nodeps rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm --force --nodeps rpm -ivh rabbitmq-server-3.7.15-1.el6.noarch.rpm --force --nodeps
检查是否安装成功
查看erlang版本:
[root@JR-JDH-UATAPP1 ~]erl -version Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.4.3
查看Rabbitmq版本:
[root@JR-JDH-UATAPP1 ~]# sudo rabbitmqctl status | grep rabbit Status of node rabbit@JR-JDH-UATAPP1 ... [{rabbitmq_tracing,"RabbitMQ message logging / tracing","3.7.15"}, {rabbitmq_management,"RabbitMQ Management Console","3.7.15"}, {rabbitmq_management_agent,"RabbitMQ Management Agent","3.7.15"}, {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.7.15"}, {rabbit,"RabbitMQ","3.7.15"}, {rabbit_common, "Modules shared by rabbitmq-server and rabbitmq-erlang-client",
检查erlang是否运行正常:
[root@JR-JDH-UATAPP1 ~]# erl Erlang/OTP 22 [erts-10.4.3] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe] Eshell V10.4.3 (abort with ^G) 1>
检查Rabbitmq是否运行正常:
[root@tcljr-jdh-yc01 ~]# systemctl status rabbitmq-server ● rabbitmq-server.service - LSB: RabbitMQ is a multi-protocol messaging broker Loaded: loaded (/etc/rc.d/init.d/rabbitmq-server; bad; vendor preset: disabled) Active: active (running) since Wed 2021-07-21 11:31:09 CST; 23h ago
查看安装路径:
[root@JR-JDH-UATAPP1 ~]# whereis erlang erlang: /usr/lib64/erlang [root@JR-JDH-UATAPP1 ~]# whereis rabbitmq rabbitmq: /etc/rabbitmq /usr/lib/rabbitmq
常用命令
# 运行 systemctl start rabbitmq-server # 重启 systemctl restart rabbitmq-server # 停止 systemctl stop rabbitmq-server # 开机自启 systemctl enable rabbitmq-server # 检查状态 systemctl status rabbitmq-server # 查看所有用户 rabbitmqctl list_users # 创建用户 rabbitmqctl add_user 用户名 密码 # 将用户给于权限(none、management、policymaker、monitoring、administrator): rabbitmqctl set_user_tags 用户名 角色 # 查看当前用户所有的权限 rabbitmqctl list_user_permissions 用户名 # 赋予用户权限(vhost configure write read) rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"
Setting permissions for user "guest" in vhost "/" ...
Error:
Virtual host / does not exist
# 报错"Virtual host / does not exist",需要添加虚拟主机:rabbitmqctl add_vhost /
# 然后再重新赋予权限:rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"
# 删除用户 rabbitmqctl delete_user 用户名
开启web管理接口
启动RabbitMQ Web管理控制台:
rabbitmq-plugins enable rabbitmq_management
打开浏览访问:
第一次访问需要登录,默认的账号密码为:guest/guest,会遇到如下图问题:User can only log in via localhost
默认情况下,Rabbitmq对guest这个账户做了限制,默认只能通过本地网络(如localhost)访问,远程网络访问受限,使用默认的用户 guest / guest (此也为管理员用户)登陆,只能登陆localhost:15672。
所以在实现生产和消费消息之前,需要另外添加一个用户,并设置相应的访问权限:
rabbitmqctl add_user 用户名 密码
设置该用户为管理员角色:
rabbitmqctl set_user_tags 用户名 administrator
为该用户设置所有权限:
rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
我们通过该用户就可以访问了。
另外,如果想要使用guest账号登录,必须解除Rabbitmq对guest账号的限制:
找到rabbit.app这个文件
[root@JR-JDH-UATAPP1 ~]# find / -name rabbit.app /usr/lib/rabbitmq/lib/rabbitmq_server-3.7.15/ebin/rabbit.app
修改这个文件:
vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.7.15/ebin/rabbit.app
将:{loopback_users, [<<”guest”>>]} 改为:{loopback_users, []},
原因:rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问。
重启服务:
systemctl restart rabbitmq-server.service
这样就可以以guest账号登录了。
管理界面介绍
主页
- Overview:概览信息,包括总计、全局计数、节点、端口和上下文等信息;
- connections:无论生产者还是消费者,都需要与RabbitMQ建立连接后才可以完成消息的生产和消费,在这里可以查看连接情况;
- channels:通道,建立连接后,会形成通道,消息的投递获取依赖通道;
- Exchanges:交换机,用来实现消息的路由;
- Queues:队列,即消息队列,消息存放在队列中,等待消费,消费后被移除队列;
Overview
Total
- Ready:待消费的消息总数;
- Unacked:待应答的消息总数
- Total:总数 Ready+Unacked;
Global counts
- Connections:client的tcp连接的总数;
- Channels:通道的总数;
- Exchange:交换器的总数;
- Queues:队列的总数;
- Consumers:消费者的总数;
Nodes
- Name:broker名称;
- File descriptors:broker打开的文件描述符和限制;
- Socket descriptors:broker管理的网络套接字数量和限制,当限制被耗尽时,将停止接受新的网络连接;
- Erlang processes:erlang启动的进程数;
- Memory:当前broker占用的内存;
- Disk space:当前broker占用的硬盘;
- Uptime:当前broker持续运行的时长;
Connections
- Virtual host:所属的虚拟主机;
- Name:名称;
- User name:使用的用户名;
- State:当前的状态,running:运行中;idle:空闲;
- SSL/TLS:是否使用ssl进行连接;
- Protocol:使用的协议;
- Channels:创建的channel的总数;
- From client:每秒发出的数据包;
- To client:每秒收到的数据包;
Channels
- channel:名称;
- Virtual host:所属的虚拟主机;
- User name:使用的用户名;
- Mode:渠道保证模式。 可以是以下之一,或者不是:C: confirm。T:transactional(事务);
- State :当前的状态,running:运行中;idle:空闲;
- Unconfirmed:待confirm的消息总数;
- Prefetch:设置的prefetch的个数;
- Unacker:待ack的消息总数;
- publish:producter pub消息的速率;
- confirm:producter confirm消息的速率;
- deliver/get:consumer 获取消息的速率;
- ack:consumer ack消息的速率;
Exchanges
- Virtual host:所属的虚拟主机;
- Name:名称;
- Type:exchange type;
- Features:功能。 可以是以下之一,或者不是:D: 持久化。T:Internal,存在改功能表示这个exchange不可以被client用来推送消息,仅用来进行exchange和exchange之间的绑定,否则可以推送消息也可以绑定。
- Message rate in:消息进入的速率。
- Message rate out:消息出去的速率。
Queues
- Virtual host:所属的虚拟主机;
- Name:名称;
- Features:功能。 可以是以下之一,或者不是:D: 持久化;
- State:当前的状态,running:运行中;idle:空闲;
- Ready:待消费的消息总数;
- Unacked:待应答的消息总数;
- Total:总数 Ready+Unacked;
- incoming:消息进入的速率;
- deliver/get:消息获取的速率;
- ack:消息应答的速率;
配置RabbitMq
关于RabbitMq的配置,可以下载RabbitMq的配置文件模板到rabbitmq.config,然后按需更改即可。
具体配置信息参考官网:http://rabbitmq.com/configure.html
开放端口
/sbin/iptables -I INPUT -p tcp —dport 5672 -j ACCEPT
/sbin/iptables -I INPUT -p tcp —dport 15672 -j ACCEPT
卸载
1、卸载前先停止rabbitmq服务
/usr/lib/rabbitmq/bin/rabbitmqctl stop
查看rabbitmq安装的相关列表
yum list | grep rabbitmq
卸载rabbitmq已安装的相关内容
yum -y remove rabbitmq-server.noarch
2、卸载erlang
查看erlang安装的相关列表
yum list | grep erlang
卸载erlang已安装的相关内容
yum -y remove erlang-*
yum remove erlang.x86_64
3、删除有关的所有文件
rm -rf /usr/lib64/erlang rm -rf /usr/lib/rabbitmq
rm -rf /usr/local/erlang
rm -rf /usr/local/rabbitmq
Rabbitmq安装、介绍及卸载到此结束。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本