服務啟動關閉
啟動:rabbitmq-server -detached
關閉:rabbitmqctl stop
集群配置相關命令
rabbitmqctl stop_app
rabbitmqctl reset
在當前集群中加入某節點:rabbitmqctl join_cluster {rabbit_node_name} (某些低版本可以采用rabbitmqctl cluster {rabbit_node_name})
rabbitmqctl start_app
集群狀態:rabbitmqctl cluster_status
將某節點剔(ti)除出當前集群(qun):rabbitmqctl forget_cluster_node {rabbit_node_name}
插件管理
開啟某個插件: rabbitmq-plugins enable {插件名}
關閉某個插件: rabbitmq-plugins disable {插件名}
有關插件名可以在rabbitmq的安裝目錄下的plugins目錄中查看:$RABBITMQ_HOME/plugins
舉例:
rabbitmq-plugins enable rabbitmq_management
rabbitmq-plugins list
用戶管理
添加用戶:rabbitmqctl add_user {username} {password}
刪除用戶:rabbitmqctl delete_user {username}
修改密碼:rabbitmqctl change_password {username} {newpassword}
設置用戶角色:rabbitmqctl set_user_tags {username} {tag}
tag可以為administrator, monitoring, management
舉例:
rabbitmqctl add_user root root
rabbitmqctl set_user_tags root administrator
rabbitmqctl list_users
權限管理
權限設置:rabbitmqctl set_permissions [-p vhostpath] {user} {conf} {write} {read}
    conf:一個正則表達式match哪些配置資源能夠被該用戶訪問。
    write:一個正則表達式match哪些配置資源能夠被該用戶讀。
    read:一個(ge)正(zheng)則表達(da)式match哪(na)些配置資源(yuan)能(neng)夠(gou)被(bei)該用戶訪(fang)問(wen)。
查看(指定vhost)所有用戶的權限信息:rabbitmqctl list_permissions [-p vhostPath]
查看指定用戶的權限信息:rabbitmqctl list_user_permissions {username}
清除用戶(hu)的權限信(xin)息(xi): rabbitmqctl clear_permissions [-p vhostPath] {username}
舉例:
rabbitmqctl set_permissions -p / root “.*” “.*” “.*”
獲取服務器狀態信息
服務器狀態:rabbitmqctl status
隊列信息: rabbitmqctl list_queues [-p vhostpath] [queueinfoitem …]
queueinfoitem可以為: name, durable, auto_delete, arguments, messages_ready, messages_unacknowled, messages, consumers, memory.
Exchange信息: rabbitmqctl list_exchanges [-p vhostpath] [exchangeinfoitem …]
exchangeinfoitem有(you):name, type, durable, auto_delete, internal, arguments.
Binding信息:rabbitmqctl list_bindings [-p vhostpath] [bindinginfoitem …]
bindinginfoitem有:source_name, source_kind, destination_name, destination_kind, routing_key, arguments.等
connection信息:rabbitmqctl list_connections [connectioninfoitem …]
connectioninfoitem有:recv_oct,recv_cnt,send_oct,send_cnt,send_pend等(deng)。
channel信息:rabbitmqctl list_channels [channelinfoitem …]
channelinfoitem有:consumer_count,messages_unacknowledged,messages_uncommitted,acks_uncommitted,messages_unconfirmed,prefetch_count,client_flow_blocked
舉例:
rabbitmqctl list_queues name messages_ready pid slave_pids
更改節點類型
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type disc
或
rabbitmqctl change_cluster_node_type ram
rabbitmqctl start_app
vhost管理
添加vhost: rabbitmqctl add vhost {name}
刪除vhost: rabbitmqctl delete vhost {name}
鏡像隊列的設置
鏡像隊列的配置通過添加policy完成,policy添加的命令為:
rabbitmqctl set_policy [-p Vhost] Name Pattern Definition [Priority]
-p Vhost: 可選參數,針對指定vhost下的queue進行設置
Name: policy的名稱
Pattern: queue的匹配模式(正則表達式)
Definition: 鏡像定義,包括三個部分 ha-mode,ha-params,ha-sync-mode
    ha-mode: 指明鏡像隊列的模式,有效值為 all/exactly/nodes
        all表示在集群所有的節點上進行鏡像
        exactly表示在指定個數的節點上進行鏡像,節點的個數由ha-params指定
        nodes表示在指定的節點上進行鏡像,節點名稱通過ha-params指定
    ha-params: ha-mode模式需要用到的參數
    ha-sync-mode: 鏡像隊列中消息的同步方式,有效值為automatic,manually
Priority: 可選參數, policy的優先級
例如,對隊列名稱以hello開頭的所有隊列進行鏡像,并在集群的兩個節點上完成鏡像,policy的設置命令為:
rabbitmqctl set_policy hello-ha “^hello” ‘{“ha-mode”:“exactly”,“ha-params”:2,“ha-sync-mode”:“automatic”}’