RabbitMQ入門教程 For Java【7】 - Window下的安裝與配置
# 一、下載
1.?RabbitMQ下載地址
? ? ? ? 進入RabbitMQ官網 :?[http://www.rabbitmq.com/](http://www.rabbitmq.com/)? ?點擊右側【最新版本列表】中的3.6.0版本下載最新版本【rabbitmq-server-3.6.0.exe】。由于RabbitMQ是Erlang語言寫的,所以,在安裝RabbitMQ之前,必選先安裝[Erlang OTP](http://www.erlang.org/download.html)到我們的電腦上.
? ? ??


2、Erlang OTP下載安裝
? ? ? ??Erlang?OTP包含了一組庫和實現方式,可以構建大規模、容錯和分布式的應用程序,包含了許多強大的工具,能夠實現H248,SNMP等多種協議. RabbitMQ是基于Erlang?OTP開發出來的,所以需要下安裝OTP環境。我的電腦是Windows7 64位系統,所以選擇Windows 64-bit Binary File. 下載完成后,雙擊下載的應用【otp_win64_18.2.1.exe】一路下一步安裝。安裝完成后,需要在系統環境變量中配置一個【ERLANG_HOME】地址指向剛剛安裝Erlang的目錄:【C:\Program Files\erl7.2.1】,并將這個路徑加入系統環境變量Path中【;%ERLANG_HOME%\bin】,“;”冒號是間隔,一定要加!





# 二、RabbitMQ安裝
? ? ? ??
? ? ? ??雙擊下載的應用程序,選擇一個安裝目錄【C:\Program Files\RabbitMQ Server】(保持默認就可以了),安裝完成后,需要配置一下環境變量【RABBITMQ_BASE】到【C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.0】,并將路徑加入到Path這個系統環境變量中【;%RABBITMQ_BASE%\sbin】,然后?進入安裝目錄【C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.0\sbin】下,雙擊【rabbitmq-server.bat】啟動.?
? ? ? ??如果安裝成功后雙擊【rabbitmq-server.bat】啟動不了,提示【node with name rabbit already running on ***】的錯誤,就試著刪除【C:\Users\Administrator\AppData\Roaming\rabbitmq】這個目錄,如果還是沒有效果,就點擊開始菜單,在所有程序》RabbitMQ Service 》RabbitMQ Service stop,先關閉已經啟動的RabbitMQ,然后再啟動。









#
三、配置
? ? ? ?安裝完成后,需要對RabbitMQ進行配置,在RabbitMQ中,有幾個概念需要了解:
? ? ? virtual hosts : 虛擬主機。類似于數據庫中的庫的概念。一個RabbitMQ服務器可以有多個虛擬主機,默認虛擬主角是“/” 根目錄。
? ? ? user:訪問虛擬主機的用戶.
? ? ? roles: 角色。有none、mamagement、policymaker、monitoring、administrator等權限。
? ? ? permissions: 權限。分conf、write、read三種權限。類似Linux的執行、寫、讀權限。
? ? ??
? ? ? 1\. 添加用戶【rabbitmqctl add_user username password】 ? ?
? ? ??2\. 分配角色【rabbitmqctl set_user_tags username administrator】
?
? ? ??3\. 新增虛擬主機【rabbitmqctl add_vhost ?vhost_name】
? ? ??4\. 將新虛擬主機授權給新用戶【rabbitmqctl set_permissions -p vhost_name username '.*' '.*' '.*'】
#
# 四、角色說明:
**1\. none ?最小權限角色**
不能訪問管理插件。權限最小。
**2\. management 管理員角**
用戶可以通過AMQP協議做的任何事,還包括:
列出自己可以通過AMQP登入的virtual hosts ?
查看自己的virtual hosts中的queues, exchanges 和 bindings
查看和關閉自己的channels 和 connections
查看有關自己的virtual hosts的“全局”的統計信息,包含其他用戶在這些virtual hosts中的活動。
**3\. policymaker ??決策者**
management可以做的任何事,還包括:
查看、創建和刪除自己的virtual hosts所屬的policies和parameters
**4\. monitoring ?監控**
management可以做的任何事,還包括:
列出所有virtual hosts,包括他們不能登錄的virtual hosts
查看其他用戶的connections和channels
查看節點級別的數據如clustering和memory使用情況
查看真正的關于所有virtual hosts的全局的統計信息
**5.administrator ?超級管理員**?
policymaker和monitoring可以做的任何事,還包括:
創建和刪除virtual hosts
查看、創建和刪除users
查看創建和刪除permissions
關閉其他用戶的connections
# 五、權限說明
權限管理的指令格式是:【set_permissions [-p ] 】
的位置分別用正則表達式來匹配特定的資源
例如【'^(amq\.gen.*|amq\.default)$'】可以匹配RabbitMQ服務器默認生成的交換器
【'^$'】不匹配任何資源
# 六,用戶、角色、權限、插件配置
**添加用戶**
rabbitmqctl add_user [username] [password]
**添加虛擬主機**
rabbitmqctl add_vhost [vhost_name]
**修改虛擬機權限**
rabbitmqctl set_permissions -p [vhost_name] [username] '.*' '.*' '.*'
**設置角色**
rabbitmqctl set_user_tags [username] administrator
**啟用web管理界面插件**
rabbitmq-plugins enable rabbitmq_management