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