1. 程式人生 > >CentOS下RabbitMQ安裝配置

CentOS下RabbitMQ安裝配置

RabbitMQ 即一個訊息佇列,主要是用來實現應用程式的非同步和解耦,同時也能起到訊息緩衝,訊息分發的作用。訊息中介軟體最主要的作用是解耦,中介軟體最標準的用法是生產者生產訊息傳送到佇列,消費者從佇列中拿取訊息並處理,生產者不用關心是誰來消費,消費者不用關心誰在生產訊息,從而達到解耦的目的。
RabbitMQ是實現AMQP(高階訊息佇列協議)的訊息中介軟體的一種,最初起源於金融系統,用於在分散式系統中儲存轉發訊息,在易用性、擴充套件性、高可用性等方面表現不俗。

安裝erlang

rabbitmq是erlang語言編寫的,在安裝rabbitmq前需要安裝erlang環境
官網erlang

erlang-solutions沒有x86的linux版本,在網上搜到noarch包
下載 wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
升級 rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
安裝 yum install erlang
如果作業系統沒安裝epel-release則報錯,
dependencies:
epel-release is needed by erlang-solutions-1.0-1.noarch
安裝epel-release
erlang-solutions-1.0-1.noarch的依賴包
yum install epel-release

原始碼安裝
也可以在官網下載*.src.rpm源程式包,但不能直接安裝執行。需要編譯、安裝(make && make install),並且自行配置環境變數
驗證安裝
錄入erl,顯示版本及shell版本
Erlang/OTP 21
Eshell V10.2

安裝RabbitMQ

wget -c https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.10/rabbitmq-server-3.7.10-1.el6.noarch.rpm
由於官網的網速很慢,需要使用 wget -c 斷點續傳
安裝 rpm -ivh rabbitmq-server-3.7.10-1.el6.noarch.rpm


rabbitmq-server依賴socat,可能有如下錯誤提示:
error: Failed dependencies:
socat is needed by rabbitmq-server-3.7.10-1.el6.noarch
yum install socat
常用RabbitMq啟動命令:

service rabbitmq-server start
service rabbitmq-server stop
service rabbitmq-server status
service rabbitmq-server restart

開啟管理外掛(然後才能訪問http://xxxx:15672)
rabbitmq-plugins enable rabbitmq_management
rabbit
新增管理員賬號
rabbitmq預設建立的使用者guest,密碼也是guest,這個使用者預設只能是本機訪問
rabbitmqctl add_user admin 123456
分配使用者標籤,administrator角色
rabbitmqctl set_user_tags admin administrator
列出所有使用者
rabbitmqctl list_users
使用者管理資源的許可權
對資源具有配置、寫、讀的許可權通過正則表示式來匹配,具體命令如下:
set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
示例:給使用者admin賦‘/’這個virtual host中所有資源的配置、寫、讀許可權以便管理其中的資源
rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'
ctl