1. 程式人生 > 其它 >Net RabbitMQ實戰

Net RabbitMQ實戰

本問主要介紹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服務,瀏覽器訪問http://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檢視

作者:Leo_wl     出處:http://www.cnblogs.com/Leo_wl/     本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。 版權資訊