.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查看

Tags: