一、rabbitmq常用命令
rabbitmq启动 :
rabbitmq-server -detached 或者 service rabbitmq-server start
rabbitmqctl status 或者 service rabbitmq-server status
rabbitmqctl stop 或者 service rabbitmq-server stop
rabbitmqctl add_vhost vhostname
例:rabbitmqctl add_vhost vhost1
查看vhost列表 :
rabbitmqctl list_vhosts
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
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}