一、rabbitmq常用命令
rabbitmq启动 :

rabbitmq-server -detached 或者 service rabbitmq-server start

rabbitmq使用
查看rabbitmq启动状态 :

rabbitmqctl status  或者 service rabbitmq-server status

rabbitmq使用_第1张图片
rabbitmq关闭 :

rabbitmqctl stop  或者 service rabbitmq-server stop

rabbitmq使用
创建vhost :

rabbitmqctl add_vhost vhostname              
例:rabbitmqctl add_vhost vhost1

rabbitmq使用
查看vhost列表 :

rabbitmqctl list_vhosts

rabbitmq使用
删除vhost :

rabbitmqctl delete_vhost vhostname
例:rabbitmqctl delete_vhost vhost1

rabbitmq使用_第2张图片
创建用户 :

rabbitmqctl add_user username password  
例:rabbitmqctl add_user test test

rabbitmq使用
查看用户列表 :

rabbitmqctl list_users

rabbitmq使用
修改用户密码 :

rabbitmqctl change_password username new-password 
例:rabbitmqctl change_password test test1

rabbitmq使用
验证用户 :

rabbitmqctl authenticate_user user password     
例: rabbitmqctl authenticate_user test test1

rabbitmq使用
设置用户角色:

rabbitmqctl set_user_tags username tag 
例:rabbitmqctl set_user_tags test monitoring

rabbitmq使用
用户角色:none、management、policymaker、monitoring、administrator,权限由低到高,为用户设置角色时,tag可以是多个
默认情况会有一个guest用户有所有权限,安全起见,先把guest用户删除
用户授权:

rabbitmqctl set_permissions -p vhostname username "conf" "write" "read" 
例:rabbitmqctl set_permissions -p vhost1 test ".*" ".*" ".*"

rabbitmq使用
查看用户权限:

rabbitmqctl list_user_permissions -p username 
例:rabbitmqctl list_user_permissions -p test

rabbitmq使用
删除用户密码(用户就无法登陆了):

rabbitmqctl clear_password username   
例:rabbitmqctl clear_password test

rabbitmq使用
删除用户 :

rabbitmqctl delete_user username 
例:rabbitmqctl delete_user test

rabbitmq使用
查看vhost权限:

rabbitmqctl list_permissions -p vhostname
例:rabbitmqctl list_permissions -p vhost1

rabbitmq使用
清除权限:

rabbitmqctl clear_permissions -p vhostname username

启用插件:

rabbitmq-plugins enable pluginname 
例:启用web插件:rabbitmq-plugins enable rabbitmq_management

rabbitmq使用_第3张图片
关闭插件:

rabbitmq-plugins disable pluginname
例:关闭web插件:rabbitmq-plugins disable rabbitmq_management

rabbitmq使用_第4张图片
二、集群搭建
首先需要在host文件添加每个节点的hostname和ip
然后将其中一个节点的.erlang.cookie远程传输到其它几个节点,erlang cookie是保证不同节点可以相互通信的密钥,集群通信要保证每个节点的erlang cookie是一样的
rabbitmq使用
重启rabbitmq-server
rabbitmq使用
rabbitmq使用

集群加入:
以node1节点为基准,将node2节点和node3节点加入node1节点的集群中,每个都需要四个步骤

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node2
rabbitmq start_app

rabbitmq使用_第5张图片

将node3节点加入只需把rabbit@node2换为rabbit@node3
查询集群状态:

rabbitmqctl cluster_status

rabbitmq使用_第6张图片
注意:关闭集群的所有节点,必须保证最后关闭的节点第一个启动,不然会报错
剔除节点常用步骤:

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app

rabbitmq使用_第7张图片
查询集群状态可以发现节点已经剔除
rabbitmq使用_第8张图片
rabbitmq节点类型:
内存节点(ram):将所有的队列、 交换器、绑定关系、用户、权限和 host 的元数据定义都存储在内存中
磁盘节点(disc):则将这些信息存储到磁盘中
把节点设为内存节点类型命令:

rabbitmqctl join_cluster rabbit@desktop1 --ram

默认为disc节点
修改节点类型:

rabbitmqctl change_cluster_node_type{disc,ram}