RabbitMQ 运行与管理

本贴最后更新于 2255 天前,其中的信息可能已经时移俗易

所谓温故而知新,可以为师矣。
回顾了一下之前记录的 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 查看已经声明的队列
查看交换器,绑定同理

  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 396 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...