RabbitMQ 运行与管理

所谓温故而知新,可以为师矣。
回顾了一下之前记录的 RabbitMQ 交换器
发现还是有点模糊,交换器
里面的几张图特别容易理解

废话不多说开始今天的内容

概念

我们都知道 RabbitMQ 是运行在 Erlang 上的,Erlang 也有虚拟机,虚拟机的每个实例我们称之为节点
与 JVM 不同,多个 Erlang 应用程序可以运行在同一个节点之上,节点之间可以进行本地通信,无论它们是否在同一个虚拟机上
如果当应用程序莫名崩溃了,Erlang 节点会自动尝试重启程序

一般的,可以再 /var/log/rabbitmq/ 目录下找到名为 rabbit@[hostname].log 日志文件

启动与关闭节点

rabbitmq -server -detached 后台运行

如果不以守护程序后台运行 当按下 crtl+c 时
会出现很多选项,关闭整个节点,可以选择 abort

rabbitmqctl 是 rabbitmq 管理的一站式解决方案
rabbitmqctl stop 能优雅地关闭节点

以上都是关闭整个节点,有时,我们只想关闭 RabbitMQ
rabbitmqctl stop_app 可以做到

配置文件

一般的,配置文件位于 /etc/rabbitmq/rabbitmq.config
打开配置文件后,默认的会有 2 条属性
mnesia 是 erlang 的数据库选项 1000 代表转储频度
rabbit 0.4 代表允许消耗的内存 即为 40%
更多配置

管理用户

rabbitmqctl add_user username password
rabbitmqctl delete_user username
rabbitmqctl list_users
rabbitmqctl change_password username newpassword

用户权限

rabbitmqctl set_permissions -p vhostname \ username "." "." "."
最后 3 个分别映射配置,写,读 配置成 ".
" 代表所有 “”代表不匹配 也就是在该项上没有权限
rabbitmqctl list_permissions -p vhostname 查看 host 下权限分布
rabbitmqctl clear_permissions -p vhostname username 移除用户在 vhost 下的所有权限
rabbitmqctl list_user_permissions 查看用户在 RabbitMQ 上的所有权限

尽量使用 vhost 来确程序安全与分隔 不要过分划分权限

rabbitmqctl list_queues -p vhostname 查看已经声明的队列
查看交换器,绑定同理