|
rabbitMQ是一個(gè)在AMQP協(xié)議標(biāo)準(zhǔn)基礎(chǔ)上完整的,可服用的企業(yè)消息系統(tǒng)。它遵循Mozilla Public License開源協(xié)議,采用 Erlang 實(shí)現(xiàn)的工業(yè)級(jí)的消息隊(duì)列(MQ)服務(wù)器,Rabbit MQ 是建立在Erlang OTP平臺(tái)上。 1.安裝Erlang所以在安裝rabbitMQ之前,需要先安裝Erlang 。 小編使用的是otp_win64_18.1 ,需要其他版本或者32位系統(tǒng)的,可以去官網(wǎng)下載。 全部點(diǎn)擊“下一步”就行。 有的選擇其他的安裝方式,可能需要添加一下系統(tǒng)環(huán)境變量(正常安裝的也要檢查下):
有最好,沒有的話就手動(dòng)添加嘛。 2.安裝RabbitMQ下載運(yùn)行rabbitmq-server-3.6.5 ,需要其他版本或者32位系統(tǒng)的,可以去官網(wǎng)下載。 依舊可以不改變默認(rèn)進(jìn)行安裝。 需要注意:默認(rèn)安裝的RabbitMQ 監(jiān)聽端口是5672 3.配置激活 RabbitMQ's Management Plugin使用RabbitMQ 管理插件,可以更好的可視化方式查看Rabbit MQ 服務(wù)器實(shí)例的狀態(tài)。 打開命令窗口: 輸入命令: "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.5\sbin\rabbitmq-plugins.bat" enable rabbitmq_management
這樣,就安裝好插件了,是不是能使用了呢?別急,需要重啟服務(wù)才行,使用命令: net stop RabbitMQ && net start RabbitMQ 這時(shí)候的,也許會(huì)出現(xiàn)這種結(jié)果:
“發(fā)生錯(cuò)誤:發(fā)生系統(tǒng)錯(cuò)誤 5。 拒絕訪問?!?/p> 這是什么鬼?查了下,原來,5代表的是:不是系統(tǒng)管理員權(quán)限。 問題解決方案:使用管理員打開cmd再執(zhí)行此命令:
這樣就結(jié)束了嗎?當(dāng)然沒有。 創(chuàng)建用戶,密碼,綁定角色使用rabbitmqctl控制臺(tái)命令(位于C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.5\sbin>)來創(chuàng)建用戶,密碼,綁定權(quán)限等。 注意:安裝路徑不同的請(qǐng)看仔細(xì)啊。 rabbitmq的用戶管理包括增加用戶,刪除用戶,查看用戶列表,修改用戶密碼。 查看已有用戶及用戶的角色: rabbitmqctl.bat list_users
新增一個(gè)用戶: rabbitmqctl.bat add_user username password
此時(shí)來看下我們當(dāng)前用戶哈:
eric 后面沒有“[administrator]” 這個(gè)administrator是干嘛用的呢?這就涉及到用戶角色問題了: 按照我個(gè)人理解,rabbitmq用戶角色可分為五類:超級(jí)管理員, 監(jiān)控者, 策略制定者, 普通管理者以及其他。 (1) 超級(jí)管理員(administrator) 可登陸管理控制臺(tái)(啟用management plugin的情況下),可查看所有的信息,并且可以對(duì)用戶,策略(policy)進(jìn)行操作。 (2) 監(jiān)控者(monitoring) 可登陸管理控制臺(tái)(啟用management plugin的情況下),同時(shí)可以查看rabbitmq節(jié)點(diǎn)的相關(guān)信息(進(jìn)程數(shù),內(nèi)存使用情況,磁盤使用情況等) (3) 策略制定者(policymaker) 可登陸管理控制臺(tái)(啟用management plugin的情況下), 同時(shí)可以對(duì)policy進(jìn)行管理。 (4) 普通管理者(management) 僅可登陸管理控制臺(tái)(啟用management plugin的情況下),無法看到節(jié)點(diǎn)信息,也無法對(duì)策略進(jìn)行管理。 (5) 其他的 無法登陸管理控制臺(tái),通常就是普通的生產(chǎn)者和消費(fèi)者。 好啦,我們也給 eric 變成 “超級(jí)管理員” 角色: rabbitmqctl.bat set_user_tags username administrator
再看下結(jié)果哈:
當(dāng)然,除了上面的administrator 還有 monitoring、policymaker、management、自定義名稱 ,對(duì)應(yīng)上面介紹到的不同的角色。 像我們?nèi)艘粯樱覀兘巧耸枪镜膯T工,還是父母的孩子、子女的爸媽等,用戶也可以同時(shí)具有多個(gè)角色,設(shè)置方式: rabbitmqctl.bat set_user_tags username tag1 tag2 ...
恩,現(xiàn)在總覺得guest 這個(gè)不安全(它的默認(rèn)密碼是guest),想更改密碼,好辦: rabbitmqctl change_password userName newPassword
有的人也許會(huì)說,我就是看guest不爽,老子新增了administrator用戶了,就是想干掉它,可以: rabbitmqctl.bat delete_user username
這時(shí),可能有人就要問了:命令框是只有一個(gè)用戶了,你怎么操作啊?怎么查看執(zhí)行情況啊/ 當(dāng)然有路子啦: 使用瀏覽器打開 http://localhost:15672 訪問Rabbit Mq的管理控制臺(tái),使用剛才創(chuàng)建的賬號(hào)登陸系統(tǒng):
其實(shí),除了可查看所有的信息 ,上面的命令 增刪改查、權(quán)限設(shè)置,都可以在這個(gè)頁(yè)面完成,還可以依據(jù)業(yè)務(wù)需求設(shè)置策略(policy),具體的就不在這里啰嗦了,大家可以看看網(wǎng)上的帖子。 權(quán)限設(shè)置用戶有了角色,那也需要權(quán)限設(shè)置啊,別急,慢慢來: 按照官方文檔,用戶權(quán)限指的是用戶對(duì)exchange,queue的操作權(quán)限,包括配置權(quán)限,讀寫權(quán)限。 我們配置權(quán)限會(huì)影響到exchange、queue的聲明和刪除。 讀寫權(quán)限影響到從queue里取消息、向exchange發(fā)送消息以及queue和exchange的綁定(binding)操作。 例如: 將queue綁定到某exchange上,需要具有queue的可寫權(quán)限,以及exchange的可讀權(quán)限;向exchange發(fā)送消息需要具有exchange的可寫權(quán)限;從queue里取數(shù)據(jù)需要具有queue的可讀權(quán)限 權(quán)限相關(guān)命令為: (1) 設(shè)置用戶權(quán)限 rabbitmqctl set_permissions -p VHostPath User ConfP WriteP ReadP (2) 查看(指定hostpath)所有用戶的權(quán)限信息 rabbitmqctl list_permissions [-p VHostPath] (3) 查看指定用戶的權(quán)限信息 rabbitmqctl list_user_permissions User (4) 清除用戶的權(quán)限信息 rabbitmqctl clear_permissions [-p VHostPath] User 現(xiàn)在環(huán)境搭好了,用戶、角色、權(quán)限全部設(shè)置好,開始進(jìn)行code(原理整理,及編碼 待續(xù)) |
|
|