一、rabbitmq常用命令 rabbitmq启动 :

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

查看rabbitmq启动状态 :

rabbitmqctl status  或者 service rabbitmq-server status

rabbitmq关闭 :

rabbitmqctl stop  或者 service rabbitmq-server stop

创建vhost :

rabbitmqctl add_vhost vhostname              
例:rabbitmqctl add_vhost vhost1

查看vhost列表 :

rabbitmqctl list_vhosts

删除vhost :

rabbitmqctl delete_vhost vhostname
例:rabbitmqctl delete_vhost vhost1

创建用户 :

rabbitmqctl add_user username password  
例:rabbitmqctl add_user test test

查看用户列表 :

rabbitmqctl list_users

修改用户密码 :

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

验证用户 :

rabbitmqctl authenticate_user user password     
例: rabbitmqctl authenticate_user test test1

设置用户角色:

rabbitmqctl set_user_tags username tag 
例:rabbitmqctl set_user_tags test monitoring

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

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

查看用户权限:

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

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

rabbitmqctl clear_password username   
例:rabbitmqctl clear_password test

删除用户 :

rabbitmqctl delete_user username 
例:rabbitmqctl delete_user test

查看vhost权限:

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

清除权限:

rabbitmqctl clear_permissions -p vhostname username

启用插件:

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

关闭插件:

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

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

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

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node2
rabbitmq start_app

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

rabbitmqctl cluster_status

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

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app

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

rabbitmqctl join_cluster rabbit@desktop1 --ram

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

rabbitmqctl change_cluster_node_type{disc,ram}