學習rabbitmq,原理以後第一個要掌握的就是rabbitmqctl這個命令的用法了,rabbitmq的管理功能最全的就是rabbitmqctl命令了,固然還有HTTP API和UI兩種管理手段。 node
rabbitmqctl的使用方法: python
rabbitmqctl [-n <node>] [-q] <command> [<command options>] -n node 默認node名稱是"rabbit@server",若是你的主機明是'server.example.com',那麼node名稱是'rabbit@server'。 -q 安靜輸出模式,信息會被禁止輸出Commands:
基本的管理功能 web
stop [<pid_file>] #中止在erlang node上運行的rabbitmq,會使rabbitmq中止 stop_app #中止erlang node上的rabbitmq的應用,可是erlang node仍是會繼續運行的 start_app #啓動erlan node上的rabbitmq的應用 wait <pid_file> #等待rabbitmq服務啓動 reset #初始化node狀態,會從集羣中刪除該節點,從管理數據庫中刪除全部數據,例如vhosts等等。在初始化以前rabbitmq的應用必須先中止 force_reset #無條件的初始化node狀態 rotate_logs <suffix> #輪轉日誌文件cluster管理
join_cluster <clusternode> [--ram] #clusternode表示node名稱,--ram表示node以ram node加入集羣中。默認node以disc node加入集羣,在一個node加入cluster以前,必須先中止該node的rabbitmq應用,即先執行stop_app。 cluster_status #顯示cluster中的全部node change_cluster_node_type disc | ram #改變一個cluster中node的模式,該節點在轉換前必須先中止,不能把一個集羣中惟一的disk node轉化爲ram node forget_cluster_node [--offline] #遠程移除cluster中的一個node,前提是該node必須處於offline狀態,若是是online狀態,則須要加--offline參數。 update_cluster_nodes clusternode # sync_queue queue #同步鏡像隊列 cancel_sync_queue queue #用戶管理
add_user <username> <password> #在rabbitmq的內部數據庫添加用戶 delete_user <username> #刪除一個用戶 change_password <username> <newpassword> #改變用戶密碼 \\改變web管理登錄密碼 clear_password <username> #清除用戶密碼,禁止用戶登陸 set_user_tags <username> <tag> ... #設置用戶tags list_users #列出用戶 add_vhost <vhostpath> #建立一個vhosts delete_vhost <vhostpath> #刪除一個vhosts list_vhosts [<vhostinfoitem> ...] #列出vhosts set_permissions [-p <vhostpath>] <user> <conf> <write> <read> #針對一個vhosts 給用戶賦予相關權限 clear_permissions [-p <vhostpath>] <username> #清除一個用戶對vhosts的權限 list_permissions [-p <vhostpath>] #列出哪些用戶能夠訪問該vhosts list_user_permissions <username> #列出該用戶的訪問權限 set_parameter [-p <vhostpath>] <component_name> <name> <value> # clear_parameter [-p <vhostpath>] <component_name> <key> # list_parameters [-p <vhostpath>] #policy管理,策略用來控制和修改queues和exchange在集羣中的行爲,策略能夠應用到vhost
set_policy [-p <vhostpath>] [--priority <priority>] [--apply-to <apply-to>] <name> <pattern> <definition> #name 策略名稱,pattern 正則表達式,用來匹配資源,符合的就會應用設置的策略,apply-to 表示策略應用到什麼類型的地方,通常有queues、exchange和all,默認是all。priority 是個整數優先級,definition 是json格式設置的策略。 clear_policy [-p <vhostpath>] <name> #清除一個策略 list_policies [-p <vhostpath>] #列出已有的策略queues && exchange狀態信息
list_queues [-p <vhostpath>] [<queueinfoitem> ...] #返回queue的信息,若是省略了-p參數,則默認顯示的是"/"vhosts的信息。 list_exchanges [-p <vhostpath>] [<exchangeinfoitem> ...] #返回exchange的信息。 list_bindings [-p <vhostpath>] [<bindinginfoitem> ...] #返回綁定信息。 list_connections [<connectioninfoitem> ...] #返回連接信息。 list_channels [<channelinfoitem> ...] #返回目前全部的channels。 list_consumers [-p <vhostpath>] #返回consumers, status #顯示broker的狀態 environment #顯示環境參數的信息 report #返回一個服務狀態report, eval <expr>
rabbitmq支持各類插件,開啓插件可使用rabbitmq-plugins命令 正則表達式
插件的開啓和關閉方法 數據庫
rabbitmq-plugins <command> [<command options>] Commands: list [-v] [-m] [-E] [-e] [<pattern>] 顯示全部的的插件。-v 顯示版本 -m 顯示名稱 -E 顯示明確已經開啓的 -e顯示明確的和暗中開啓的 enable <plugin> ... 開啓一個插件 disable <plugin> ... 關閉一個插件在debian/ubuntu下插件通常安裝路徑:/usr/lib/rabbitmq/lib/rabbitmq_server-3.2.2/plugins
開啓:rabbitmq-plugins enable rabbitmq_management json
rabbitmq_management提供一個基於HTTP的API接口,來管理和監控你的rabbitmq。他有web方式和CLI方式,其實web方式是在後端調用HTTP api ubuntu
rabbitmq_management插件的用法: 後端
web http://host:15672/ api http://host:15672/api/ cli http://host:15672/cli