一、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}