.Net Redis實戰指南——常用命令
本問主要介紹rabbitmqctl工具的常用命令。
vhost
一個RabbitMQ服務器可以創建多個虛擬的消息服務器,稱之為虛擬主機(virtual host),簡稱為vhost。vhost之間是絕對隔離的,能將同一個RabbitMQ中的客戶分開,又能避免隊列和交換器等命名衝突。客戶端在連接的時候必須制定一個vhost。RabbitMQ默認創建的vhost為「/」。
rabbitmqctl add_vhost {vhost} 創建一個新的vhost
sudo rabbitmqctl list_vhosts 列出所有vhost
rabbitmqctl delete_vhost {vhost} 刪除一個vhost
用戶
用戶是訪問控制(Access Control)的基本單元,且單個用戶可以跨越多個vhost進行授權。
rabbitmqctl add_user {username} {password} 創建用戶
rabbitmqctl change_password {username} {newpassword} 更改指定用戶的密碼
rabbitmqctl clear_password {username} 清除指定用戶密碼
rabbitmqctl authenticate_user {username} {password} 驗證用戶密碼
rabbitmqctl delete_user {username} 刪除指定用戶
rabbitmqctl list_users 列出當前所有用戶
可以看到新添加的user1 tags是[],可以調用set_user_tags命令設置用戶標籤。
rabbitmqctl set_user_tags {username} {tag…} 設置用戶角色標籤(設置後之前現有的標籤都會被刪除)
rabbitmq支持的標籤有如下:
none:無任何角色。新創建的用戶的角色默認為none。
management:可以訪問Web管理頁面。
policymaker:包含management的所有權限,並且可以管理策略(Policy)和參數(Parameter)。
monitoring:包含management的所有權限,並且可以看到所有連接、信道及節點相關的信息。
administartor:包含monitoring的所有權限,並且可以管理用戶、虛擬主機、權限、策略、參數等。administator代表了最高的權限。
權限
為了更好的理解user vhost之間的權限關係,再新增一個vhost(vhost1)。
rabbitmqctl list_user_permissions {username} 列舉權限信息
可以看到mymq賬號只有「/」的操作權限
rabbitmqctl set_permissions [-p vhost] {user}{conf}{write}{read} 設置用戶在vhost的權限
set_permissions命令參數說明:
vhost:授予用戶訪問權限的vhost名稱,可以設置為默認值,即vhost為「/」。
user:可以訪問指定vhost的用戶名。
conf:一個用於匹配用戶在哪些資源上擁有可配置權限的正則表達式。
write:一個用於匹配用戶在哪些資源上擁有可寫權限的正則表達式。
read:一個用於匹配用戶在哪些資源上擁有可讀權限的正則表達式。
註:可配置指的是隊列和交換器的創建及刪除之類的操作;可寫指的是發佈消息;可讀指與消息有關的操作,包括讀取消息及清空整個隊列等。
rabbitmqctl list_permissions [-p vhost] 列舉vhost權限信息
rabbitmqctl clear_permissions [-p vhost] {username} 清除用戶在vhost的權限
其他
rabbitmq-plugins enable [plugin-name] 啟動插件
rabbitmq-plugins disable [plugin-name] 關閉插件
如Web插件可以通過rabbitmq-plugins enable rabbitmq_management命令開啟。開啟之後重啟RabbitMQ服務,瀏覽器訪問//localhost:15672即可打開Web管理插件(第一次可使用默認的guest/guest用戶和密碼登錄)。
rabbitmqctl list_consumers [-p vhost] 列舉消費者信息,默認為「/」
rabbitmqctl status 顯示Broker的狀態
rabbitmqctl node_health_check 對RabbitMQ節點進行健康檢查
rabbitmqctl environment 顯示每個運行程序環境中每個變量的名稱和值。
rabbitmqctl report 為所有服務器狀態生成一個服務器狀態報告
以上兩個命令輸出很複雜有機會在細看了。
list_exchanges [-p vhost] 列舉交換機信息,默認為「/」
list_queues [-p vhost] 列舉隊列信息,默認為「/」
更多應用和集群相關命令可通過 rabbitmqctl help查看