1. 先下载并安装Erlang
1.1 官网下载对应版本的安装包安装;
1.2.设置ErLang环境变量,配置Erlang的bin目录到系统变量Path,
1.3 命令行输入 erl 命令 检查是否安装成功:
2.安装RabbitMQ
2.1 官网下载安装包并安装;
2.2 安装完成后 命令行切换到安装目录的sbin下(也可以配置环境变量)
输入命令启动 rabbitmq_managemen(RabbitMQ的管理后台的插件)
rabbitmq-plugins enable rabbitmq_management
2.3 服务已经默认开启,如果没有开启,可以输入命令手动开启:
rabbitmq-server start
2.4 登陆管理界面
开启浏览器访问http://localhost:15672
默认userName:guest password:guest
3. 基本概念和操作
- RabbitMQ 默认监听端口是5672
- Broker:简单来说就是消息队列服务器实体。
- Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
- Queue:消息队列载体,每个消息都会被投入到一个或多个队列。
- Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
- Routing Key:路由关键字,exchange根据这个关键字进行消息投递。
- vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。
- producer:消息生产者,就是投递消息的程序。
- consumer:消息消费者,就是接受消息的程序。
- channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。
3.1 基本操作
重启服务:
net stop RabbitMQ && net start RabbitMQ
RabbitMQ启动和关闭
rabbitmq-service start
rabbitmq-service stop
3.2 用户管理
(1)查看已有用户及用户的角色:
rabbitmqctl.bat list_users
(2)新增一个用户:
rabbitmqctl.bat add_user { {username}} { {password}}
(3)设置用户角色:
rabbitmqctl.bat set_user_tags { {username}} administrator
rabbitmq用户角色可分为五类:
- 超级管理员(administrator)
可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
- 监控者(monitoring)
可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
- 策略制定者(policymaker)
可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。
- 普通管理者(management)
仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
- 无角色
无法登陆管理控制台,通常就是普通的生产者和消费者。
(4)一个用户可以同时具有多个角色:
rabbitmqctl.bat set_user_tags { {username}} { {tag1}} { {tag2}} ...
(5)更改用户密码:
rabbitmqctl change_password { {userName}} { {newPassword}}
(6)删除用户:
rabbitmqctl.bat delete_user { {username}}
3.3 vhost管理和权限设置
- 当我们在创建用户时,会指定用户能访问一个虚拟主机,并且该用户只能访问该虚拟机下的队列(queue)和交换机(exchange),如果没有指定,默认的是”/”。
- 每一个vhost本质上是一个mini版的RabbitMQ服务器,拥有自己的交换机、队列、绑定等,拥有自己的权限机制。vhost之于Rabbit就像虚拟机之于物理机一样。
- 一个rabbitmq服务器上可以运行多个vhost,以便于适用不同的业务需要,这样做既可以满足权限配置的要求,也可以避免不同业务之间队列、交换机的命名冲突问题,因为不同vhost之间是隔离的。
- 用户权限指的是用户对exchange,queue的操作权限,包括配置权限,读权限、写权限(ConfP WriteP ReadP)。
(1) 新增虚拟主机:
rabbitmqctl add_vhost { {vhost_name}}
(2) 设置用户权限
rabbitmqctl set_permissions -p { {vhost_name}} { {username}} ConfP WriteP ReadP
(3) 查看(指定hostpath)所有用户的权限信息
rabbitmqctl list_permissions [-p { {vhost_name}}]
(4) 查看指定用户的权限信息
rabbitmqctl list_user_permissions { {username}}
(5) 清除用户的权限信息
rabbitmqctl clear_permissions [-p { {vhost_name}}] User
(6) 查看所有vhost
rabbitmqctl list_vhosts
(7) 删除vhost
rabbitmqctl delete_vhost { {vhost_name}}
3.4 队列管理
查看所有的队列:
rabbitmqctl list_queues
清除所有的队列:
rabbitmqctl reset