RabbitMQ 安裝
一般來(lái)說(shuō)安裝 RabbitMQ 之前要安裝 Erlang ,可以去Erlang官網(wǎng)下載梧乘。接著去RabbitMQ官網(wǎng)下載安裝包巍佑,之后解壓縮即可。根據(jù)操作系統(tǒng)不同官網(wǎng)提供了相應(yīng)的安裝說(shuō)明:Windows、Debian / Ubuntu蛾方、RPM-based Linux像捶、Mac
如果是Mac 用戶,個(gè)人推薦使用 HomeBrew 來(lái)安裝桩砰,安裝前要先更新 brew:
brew update
接著安裝 rabbitmq 服務(wù)器:
brew install rabbitmq
這樣 RabbitMQ 就安裝好了拓春,安裝過(guò)程中會(huì)自動(dòng)其所依賴的 Erlang 。
RabbitMQ 運(yùn)行和管理
啟動(dòng)
啟動(dòng)很簡(jiǎn)單亚隅,找到安裝后的 RabbitMQ 所在目錄下的 sbin 目錄硼莽,可以看到該目錄下有6個(gè)以 rabbitmq 開頭的可執(zhí)行文件,直接執(zhí)行 rabbitmq-server 即可煮纵,下面將 RabbitMQ 的安裝位置以 . 代替懂鸵,啟動(dòng)命令就是:
./usr/local/Cellar/rabbitmq/3.6.6/sbin/rabbitmq-server
啟動(dòng)正常的話會(huì)看到一些啟動(dòng)過(guò)程信息和最后的 completed with?10 plugins,這也說(shuō)明啟動(dòng)的時(shí)候默認(rèn)加載了10個(gè)插件行疏。
后臺(tái)啟動(dòng)
如果想讓 RabbitMQ 以守護(hù)程序的方式在后臺(tái)運(yùn)行匆光,可以在啟動(dòng)的時(shí)候加上 -detached 參數(shù):
./usr/local/Cellar/rabbitmq/3.6.6/sbin/rabbitmq-server -detached
查詢服務(wù)器狀態(tài)
sbin 目錄下有個(gè)特別重要的文件叫 rabbitmqctl ,它提供了 RabbitMQ 管理需要的幾乎一站式解決方案酿联,絕大部分的運(yùn)維命令它都可以提供终息。
查詢 RabbitMQ 服務(wù)器的狀態(tài)信息可以用參數(shù) status :
./usr/local/Cellar/rabbitmq/3.6.6/sbin/rabbitmqctl status
該命令將輸出服務(wù)器的很多信息,比如 RabbitMQ 和 Erlang 的版本贞让、OS 名稱周崭、內(nèi)存等等
通過(guò)網(wǎng)頁(yè)管理查看服服務(wù)
通過(guò)命令行開啟web管理服務(wù)
>rabbitmq-plugins enable rabbitmq_management
http://localhost:15672/ 默認(rèn)登錄名和密碼都是 guest
命令行添加新用戶并允許遠(yuǎn)程訪問(wèn)
1)使用rabbitctl添加用戶
>rabbitmqctl add_user mq 123456
2)為用戶添加角色
>rabbitmqctl set_user_tags mq administrator
3)設(shè)置用戶權(quán)限
>rabbitmqctl set_permissions -p "/" mq ".*" ".*" ".*"
4)查看vhost(/)允許哪些用戶訪問(wèn)
>rabbitmqctl list_permissions -p /
Listing permissions for vhost "/" ...
user configure write read
guest .* .* .*
mq .* .* .*
5)配置允許遠(yuǎn)程訪問(wèn)的用戶,rabbitmq的guest用戶默認(rèn)不允許遠(yuǎn)程主機(jī)訪問(wèn)喳张。
>cat /etc/rabbitmq/rabbitmq.config
[??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
{rabbit,?[{tcp_listeners,?[5672]},?{loopback_users,?["mq"]}]}
].
關(guān)閉 RabbitMQ 節(jié)點(diǎn)
我們知道 RabbitMQ 是用 Erlang 語(yǔ)言寫的续镇,在Erlang 中有兩個(gè)概念:節(jié)點(diǎn)和應(yīng)用程序。節(jié)點(diǎn)就是 Erlang 虛擬機(jī)的每個(gè)實(shí)例销部,而多個(gè) Erlang 應(yīng)用程序可以運(yùn)行在同一個(gè)節(jié)點(diǎn)之上磨取。節(jié)點(diǎn)之間可以進(jìn)行本地通信(不管他們是不是運(yùn)行在同一臺(tái)服務(wù)器之上)人柿。比如一個(gè)運(yùn)行在節(jié)點(diǎn)A上的應(yīng)用程序可以調(diào)用節(jié)點(diǎn)B上應(yīng)用程序的方法,就好像調(diào)用本地函數(shù)一樣忙厌。如果應(yīng)用程序由于某些原因奔潰凫岖,Erlang 節(jié)點(diǎn)會(huì)自動(dòng)嘗試重啟應(yīng)用程序。
如果要關(guān)閉整個(gè) RabbitMQ 節(jié)點(diǎn)可以用參數(shù) stop :
./usr/local/Cellar/rabbitmq/3.6.6/sbin/rabbitmqctl stop
它會(huì)和本地節(jié)點(diǎn)通信并指示其干凈的關(guān)閉逢净,也可以指定關(guān)閉不同的節(jié)點(diǎn)哥放,包括遠(yuǎn)程節(jié)點(diǎn),只需要傳入?yún)?shù) -n :
./usr/local/Cellar/rabbitmq/3.6.6/sbin/rabbitmqctl -n rabbit@server.example.com stop
-n node 默認(rèn) node 名稱是 rabbit@server 爹土,如果你的主機(jī)名是server.example.com甥雕,那么 node 名稱就是rabbit@server.example.com。
關(guān)閉 RabbitMQ 應(yīng)用程序
如果只想關(guān)閉應(yīng)用程序胀茵,同時(shí)保持 Erlang 節(jié)點(diǎn)運(yùn)行則可以用 stop_app:
./usr/local/Cellar/rabbitmq/3.6.6/sbin/rabbitmqctl stop_app
這個(gè)命令在后面要講的集群模式中將會(huì)很有用社露。
啟動(dòng) RabbitMQ 應(yīng)用程序
./usr/local/Cellar/rabbitmq/3.6.6/sbin/rabbitmqctl start_app
重置 RabbitMQ 節(jié)點(diǎn)
./usr/local/Cellar/rabbitmq/3.6.6/sbin/rabbitmqctl reset
該命令將清除所有的隊(duì)列。
查看已聲明的隊(duì)列
./usr/local/Cellar/rabbitmq/3.6.6/sbin/rabbitmqctl list_queues
查看交換器
./usr/local/Cellar/rabbitmq/3.6.6/sbin/rabbitmqctl list_exchanges
該命令還可以附加參數(shù)琼娘,比如列出交換器的名稱峭弟、類型、是否持久化脱拼、是否自動(dòng)刪除:
./usr/local/Cellar/rabbitmq/3.6.6/sbin/rabbitmqctl list_exchanges nametypedurable auto_delete
查看綁定
./usr/local/Cellar/rabbitmq/3.6.6/sbin/rabbitmqctl list_bindings