RabbitMQ是一個實現了AMQP(高級消息隊列協議,是一個線路層的協議規範)的開源消息中間件,使用高性能Erlang編寫,RabbitMQ具有可靠性,支持多種協議,高可用,支持消息集羣以及多語言客戶端等特點,在分佈式系統中存儲轉發消息。
下面是我的安裝操作:
1、安裝Erlang
(1)安裝類庫
- yum -y install ncurses-devel
- yum -y install openssl-devel
- yum -y install unixODBC-devel
- yum -y install gcc-c++
(2)解壓Erl 安裝包 (注意 不加解壓 z)
tar -xvf otp_src_18.2.1.tar.gz
./configure --prefix=/usr/local/src/erlang #校驗安裝信息並且設定安裝路徑
配置Erlang環境變量,vi /etc/profile文件,增加下面的環境變量:
- export ERLANG_HOME=/usr/local/src/erlang
- export PATH=$ERLANG_HOME/bin:$PATH
使得文件生效 source /etc/profile
(3) 測試 erl,如圖爲成功
2、安裝RabbitMQ
(1)下載RabbitMQ
官方下載地址http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-generic-unix-3.6.1.tar.xz
注:RabbitMQ3.6版本無需make、make install 解壓就可以用
#解壓rabbitmq,官方給的包是xz壓縮包,所以需要使用xz命令
xz -d rabbitmq-server-generic-unix-3.6.1.tar.xz
#xz解壓後得到.tar包,再用tar命令解壓
tar -xvf rabbitmq-server-generic-unix-3.6.1.tar
#修改文件夾名
mv rabbitmq_server-3.6.1 rabbitmq-3.6.1
#開啓管理頁面插件
cd ./rabbitmq-3.6.1/sbin/
./rabbitmq-plugins enable rabbitmq_management
(2)啓動:
#啓動命令,該命令ctrl+c後會關閉服務
./rabbitmq-server
#在後臺啓動Rabbit
./rabbitmq-server -detached
#關閉服務
./rabbitmqctl stop
#關閉服務(kill) 找到rabbitmq服務的pid [不推薦]
ps -ef|grep rabbitmq
kill -9 ****
(3)添加管理員賬號:(XXXXX/XXXX)
rabbitmq默認會創建guest賬號,只能用於localhost登錄頁面管理員
注: 必須在運行時才能分配管理員
#進入RabbitMQ安裝目錄
cd /mq/rabbitmq_server-3.6.1/sbin
#添加用戶
#rabbitmqctl add_user Username Password
./rabbitmqctl add_user rabbitadmin 123456
#分配用戶標籤
#rabbitmqctl set_user_tags User Tag
#[administrator]:管理員標籤
./rabbitmqctl set_user_tags rabbitadmin administrator
(4)常用命令:
查看服務狀態:rabbitmqctl status
關閉服務:rabbitmqctl stop
查看mq用戶:rabbitmqctl list_users
查看用戶權限:rabbitmqctl list_user_permissions guest
新增用戶: rabbitmqctl add_user admin 123456
賦予管理員權限:
rabbitmqctl set_user_tags admin administrator
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
(5)登錄管理界面:
瀏覽器輸入地址:http://服務器IP地址:15672/
(6)訪問不了
安裝完成之後如果機器有iptables,需要開放端口
vim /etc/sysconfig/iptables
#RabbitMQ
-A INPUT -p tcp -m state --state NEW -m tcp --dport 15672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 4369 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5671 -j ACCEPT
#RabbitMQ
設置端口號,可供外部訪問:
iptables -I INPUT -p tcp --dport 15672 -j ACCEPT