千家信息网

如何运行和管理RabbitMQ

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下如何运行和管理RabbitMQ,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!RabbitMQ服务管理启动
千家信息网最后更新 2026年11月01日如何运行和管理RabbitMQ

小编给大家分享一下如何运行和管理RabbitMQ,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

RabbitMQ服务管理

启动RabbitMQ应用程序和Erlang节点

# /etc/init.d/rabbitmq-server start

停止RabbitMQ应用程序和Erlang节点

# /etc/init.d/rabbitmq-server stop

或者

# rabbitmqctl stop

只启动/停止RabbitMQ应用

[root@localhost ~]# rabbitmqctl stop_app[root@localhost ~]# rabbitmqctl start_app

启用管理插件

#rabbitmq-plugins enable rabbitmq_management

RabbitMQ configuration file

RabbitMQ的配置文件有两个

  • 一个是环境变量的配置文件 rabbitmq-env.conf ;

  • 一个是配置信息的配置文件 rabbitmq.config;

注意,这两个文件默认是没有的,如果需要必须自己创建。RabbitMQ如果是用RPM包安装的,那么它的配置文件目录为/etc/rabbitmq,我们需要在此目录下手动创建rabbitmq.config文件和rabbitmq-env.conf文件,并更改这两个文件的属主属组为rabbitmq

[root@localhost rabbitmq]# lltotal 12-rw-r--r-- 1 root     root     23 Nov 10 18:37 enabled_plugins-rw-r--r-- 1 rabbitmq rabbitmq 36 Nov 10 18:35 rabbitmq.config-rw-r--r-- 1 rabbitmq rabbitmq 80 Nov 10 18:35 rabbitmq-env.conf

rabbitmq-env.conf

这个文件的位置是确定和不能改变的,位于:/etc/rabbitmq目录下(这个目录需要自己创建)。
文件的内容包括了RabbitMQ的一些环境变量,常用的有:

RABBITMQ_NODENAME=FZTEC-240088 节点名称RABBITMQ_NODE_IP_ADDRESS=127.0.0.1 监听IPRABBITMQ_NODE_PORT=5672 监听端口RABBITMQ_LOG_BASE=/data/rabbitmq/log 日志目录RABBITMQ_PLUGINS_DIR=/data/rabbitmq/plugins 插件目录RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia 后端存储目录

rabbitmq.config

这是一个标准的erlang配置文件。它必须符合erlang配置文件的标准。
它既有默认的目录,也可以在rabbitmq-env.conf文件中配置,该文件结构为哈希数组格式

例如:

[{mnesia, [{dump_log_write_threshold, 1000}]},{rabbit, [{vm_memory_high_watermark, 0.4}]}{rabbitmq_management,[{listener, [{port, 55673},{ip, "0.0.0.0"}]}]}].

mnesia指的是Mnesia数据库配置选项,Mnesia是RabbitMQ用来存储交换器和队列元数据的

rabbit指的是RabbitMQ特定的配置选项,每个选项的表达式都为{[option_name],[option_value]}。

Mnesia配置选项:

dump_log_write_threshold:默认值为100,将仅限追加的日志内容刷出/转储至真实的数据库文件的频度,它明确指定了在转储操作发生前,必须有多少个条目存储在日志中。设置更高的数值将减少I/O负载并增加持久化消息的性能。

Rabbit配置选项:

tcp_listeners:            默认值[{"0.0.0.0",5672},],定义了RabbitMQ应该监听的非SSL加密通信的IP地址和端口{"ip地址","端口号"}数组
ssl_listeners:             默认值为空,定义了RabbitMQ应该监听的SSL加密通信的IP地址和端口{"ip地址","端口号"}数组
ssl_options:    默认值为空,指定SSL相关的选项,有cacertfile(CA证书文件),keyfile(密钥文件)和fail_if_no_peer_cert(客户端有效证书){"键","值"}数组
vm_memory_high_watermark: 默认值0.4  控制RabbitMQ允许消耗的的内存百分比,0.4=40%十进制数值
msg_store_file_size_limit: 默认值16777216  RabbitMQ垃圾收集存储内容之前,消息存储数据库的最大大小整型  单位字节B
queue_index_max_journal_entries: 默认值262144  在转储到消息存储数据库并提交之前,消息存储数据库的最大大小整型

其他参数:

disk_free_limit 磁盘低水位线,若磁盘容量低于指定值则停止接收数据,默认值为{mem_relative, 1.0},即与内存相关联1:1,也可定制为多少byte.
hipe_compile 将部分rabbimq代码用High Performance Erlang compiler编译,可提升性能,该参数是实验性,若出现erlang vm segfaults,应关掉。
force_fine_statistics, 该参数属于rabbimq_management,若为true则进行精细化的统计,但会影响性能。

RabbitMQ两个配置文件的更多详细信息请参考官网

http://www.rabbitmq.com/configure.html#configuration-file

RabbitMQ用户管理

添加用户:

rabbitmqctl add_user [username]  [password]

例如:

rabbitmqctl add_user pms pms

将用户的tags设置为administrator,注意,这一步非常重要,否则无法使用创建的用户通过web浏览器登录并管理MQ服务

rabbitmqctl set_user_tags pms administrator

删除用户:

rabbitmqctl  delete_user [username]

注意:当删除用户时,任何引用该用户的访问控制条目都会从Rabbit权限数据库中删除中自动删除。同事rabbit不会警告你与用户相关的访问控制条目也会一并被删除。

修改用户密码:

rabbitmqctl  change_password  Username  Newpassword

列出用户

rabbitmqctl  list_users

更改密码

rabbitmqctl change_password  [username] [newpasswd]

RabbitMQ权限管理

RabbitMQ权限分类:

  • 读:有关消费消息的任何操作,包括清除整个队列(需要绑定操作成功)

  • 写:发布消息(需要绑定操作成功)

  • 配置:队列和交换器的创建和删除

权限设置:

rabbitmqctl set_permissions -p [vhost_name] [user_name] [config] [write] [read]

例1:

rabbitmqctl set_permissions -p / guest ".*" ".*" ".*"

-p / :表示对/ 虚拟主机设置权限,如何省略vhost,默认为"/"虚拟主机

guest:对guest用户设置权限

后面的三个".*"分别对应配置、写、读的权限

".*"为正则表达式,指代所有权限,".*"意味着匹配所有交换器和队列。这样就允许guest用户对/ 虚拟主机的所有队列和交换器执行配置、写、读命令。

例2:

# rabbitmqctl set_permissions -p / aaa "" "check-.*" ".*"Setting permissions for user "aaa" in vhost "/" ...

对"/"虚拟主机赋予 aaa用户不能配置,限制只能对以"check-"开头的队列和交换器写操作,对所有队列和交换器可读的操作的权限。

查看权限

rabbitmqctl list_permissions -p [vhost_name]
rabbitmqctl list_permissions -p /Listing permissions in vhost "/" ...guest   .*      .*      .*spms    .*      .*      .*aaa             check-.*        .*

删除权限

rabbitmqctl clear_permissions -p [vhost_name] [user_name]

例如:

rabbitmqctl clear_permissions -p / aaa Clearing permissions for user "aaa" in vhost "/" ...[root@localhost ~]# rabbitmqctl list_permissions -p /Listing permissions in vhost "/" ...guest   .*      .*      .*spms    .*      .*      .*

MQ 用户角色
按照个人理解,用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。
(1) 超级管理员(administrator)
可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
(2) 监控者(monitoring)
可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
(3) 策略制定者(policymaker)
可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。与administrator的对比,administrator能看到这些内容。
(4) 普通管理者(management)
仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
(5) 其他
无法登陆管理控制台,通常就是普通的生产者和消费者。

以上是"如何运行和管理RabbitMQ"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

管理 文件 配置 用户 权限 数据 目录 控制 队列 存储 交换器 信息 内容 情况 数据库 消息 节点 控制台 登陆 两个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 小米移动互联网科技园 金融科技还是互联网 互联网科技垄断 互联网金融 科技 狮子座互联网科技 互联网未来科技 中国互联网科技发展 贷财互联网科技 互联网科技公司有哪些 湖南洣水互联网科技有限公司扣款 互联网教育科技公司vipkid 互联网科技商业 杭州壁岐互联网科技有限公司 电子科技大学互联网创业大赛 天津腾达互联网科技有限公司 新氧科技和美国互联网有关系吗 云南互联网科技学费 安徽零酒互联网科技有限公司 六子台科技互联网展会 互联网科技快速发展优美句子 广东万易互联网科技有限公司惠州分公司 西安互联网科技 贷财互联网科技 无线互联网科技 中国互联网金融科技基金 浙江互联网科技研学营 西安有哪些互联网高科技企业 陕西九四连强互联网科技有限公司 北京互联网科技类企业分布 美国五大互联网科技公司市值多少
0