RabbitMQ 安装
- 安装 RabbitMQ 前要先安装 Erlang,可以去 Erlang 官网下载,接着去 RabbitMQ 官网下载安装包,解压缩即可
- Mac 用户可以通过 HomeBrew 来安装,会自动添加依赖的 Erlang
brew update
brew install rabbitmq
RabbitMQ 运行和管理
- 要启动 RabbitMQ 只需在 sbin 目录下执行
/sbin/rabbitmq-server
- 若想要 RabbitMQ 以守护程序的方式在后台运行,只需在启动时加上 detached 参数
/sbin/rabbitmq-server -detached
- 查询服务器状态,可通过 rabbitmqctl,通过 status 参数
/sbin/rabbitmqctl status
- 关闭 RabbitMQ 节点,在 Erlang 中有两个概念:节点和应用程序,节点为 Erlang 虚拟机的每个实例,多个 Erlang 应用程序可以运行在同一个节点之上,节点之间可进行通信(无论是否运行在同一台服务器),比如一个运行在节点 A 上得应用程序可以调用节点 B 上应用程序的方法,就好像调用本地函数一样
- 如果要关闭整个 RabbitMQ 节点可以使用 stop 参数,它会和本地节点通信并指示其干净得关闭
/sbin/rabbitmqctl stop
- 也可以指定关闭不同得节点,包括远程节点,只需传入参数 -n node,默认 node 名称是 rabbit@server,如果主机名是 server.example.com,那么 node 名称就是 rabbit@server.example.com
/sbin/rabbitmqctl -n rabbit@server.example.com stop
- 关闭 RabbitMQ 应用程序,如果只想关闭应用程序,同时保持 Erlang 节点运行则可以使用 stop_app
/sbin/rabbitmqctl stop_app
- 启动 RabbitMQ 应用程序
/sbin/rabbitmqctl start_app
- 重置 RabbitMQ 节点,它将会清除所有的队列
/sbin/rabbitmqctl reset
- 查看已声明的队列
/sbin/rabbitmqctl list_queues
- 查看交换器
/sbin/rabbitmqctl list_exchanges
改命令还可以附加参数,比如列出交换器名称、类型、是否持久化、是否自动删除
/sbin/rabbitmqctl list_exchanges name type durable auto_delete
- 查看绑定
/sbin/rabbitmqctl list_bindings
RabbitMQ 用户与权限
用户角色分类
- none:普通的消息生产者和消费者、不能访问 management plugin
- management:普通的管理者,仅可登录管理控制台,无法看见节点信息、无法对 policies 进行管理
- policymaker:策略定制者,相比 management 增加了查看、创建、删除 virtual hosts 所属的 policies 和 parameters
- monitoring:相比 management 增加了列出 virutual hosts,包括 virtual hosts,可以查看 rabbitmq 节点相关信息(进程数、内存使用情况、磁盘使用情况)
- administrator:超级管理员
用户管理
- 创建用户
rabbitmqctl add_user {用户名} {密码} #创建用户
rabbitmqctl set_user_tags {用户名} {权限} #设置权限
// 例如创建一个超级用户
rabbitmqctl add_user admin1 admin1
rabbitmqctl set_user_tags admin1 administrator
- 查看用户列表
rabbitmqctl list_users
- 用户权限
rabbitmqctl add_vhost <vhost> #添加 Virtual Hosts
rabbitmqctl delete_vhost <vhost> #删除 Virtual Hosts
// 添加 Users
rabbitmqctl add_user <username> <password>
rabbitmqctl set_user_tags <username> <tag> ...
rabbitmqctl set_permissions [-p <vhost>] <user> <conf> <write> <read>
// 使用户 user1 具有 vhost1 这个 virtual host 中所有资源的配置、写、读权限
rabbitmqctl set_permissions -p vhost1 user1 '.*' '.*' '.*'
// 查看权限
rabbitmqctl list_user_permissions user1
rabbitmqctl list_permissions -p vhost1
// 清除权限
rabbitmqctl clear_permissions [-p VHostPath] User
- 删除用户
rabbitmqctl delete_user Username
- 修改用户密码
rabbitmqctl change_password Username Newpassword
RabbitMQ 图形管理界面
开启 RabbitMQ 图形管理插件
rabbitmq-plugins enable rabbitmq_management
启动 RabbitMQ
rabbitmq-server -detached
添加用户
rabbitmqctl add_user admin 123456
添加权限
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
修改用户角色
rabbitmqctl set_user_tags admin administrator
访问 http://localhost:15672,通过 admin 123456 登录 RabbitMQ 管理界面