最近公司在用mqtt協(xié)議做推送,所以研究了下RabbitMq,據(jù)說這個可以支持百萬級的并發(fā)量,查了一些資料,發(fā)現(xiàn)有的地方還是存在坑的,所以把這些坑列出來,以防后面的童鞋也踩這個坑。(主要針對剛接觸Linux的小白來說,大神勿噴)
首先附上RabbitMq的官網(wǎng):
http://www.rabbitmq.com/
不了解RabbitMq是什么東西的先自行了解一下。英語不錯的同學(xué)還是推薦閱讀英文資料,官方的文檔比網(wǎng)絡(luò)上文檔更為準確。
我是用的阿里云的centos7.2的服務(wù)器搭建rabbitmq的服務(wù)器,然后用的是Xshell5,大家也可以在linux windows等系統(tǒng)搭建,此處不做描述!
進入正題:
1.先安裝 Erlang
有 EPEL 源的情況(需要安裝的內(nèi)容較多,寬帶要能跟上):
sudo yum install erlang
在github上還提供了另一種方式的安裝,想了解的移步github搜索rabbitmq,我是用的第一種。
2.安裝 RabbitMQ
首先安裝下面這個要引入的依賴:
rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
然后下載rabbit,注意這個wget命令是下載鏈接
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm
我是linux小白,沒仔細看linux命令就開始搞了,這個命令只是下載rabbitmq,并不進行安裝,在xshell上通過ll命令查看,下載完成有一個rpm文件;
然后用下面的命令進行安裝:
yum install -y rabbitmq-server-3.6.5-1.noarch.rpm
啟動服務(wù):
----->先看下自己的主機名:hostname,比如我的主機名是:test;
----->先修改一下 host 文件:vim /etc/hosts,添加一行:127.0.0.1 test(必須這樣做),這里順便說一下vim的安裝命令:
yum install vim-enhanced
注意:如果下面的命令執(zhí)行失敗,自己去檢查一下是否安裝成功rabbitmq
----->啟動:service rabbitmq-server start
,啟動一般都比較慢,所以別急
----->停止:service rabbitmq-server stop
----->重啟:service rabbitmq-server restart
---- >設(shè)置開機啟動:chkconfig rabbitmq-server on
3.配置
查找默認配置位置:
find / -name "rabbitmq.config.example"
,
我這邊搜索結(jié)果是:
/usr/share/doc/rabbitmq-server-3.6.5/rabbitmq.config.example
復(fù)制默認配置的結(jié)果
cp /usr/share/doc/rabbitmq-server-3.6.5/rabbitmq.config.example /etc/rabbitmq/
修改配置文件名:
cd /etc/rabbitmq ; mv rabbitmq.config.example rabbitmq.config
編輯配置文件,開啟用戶遠程訪問:
vim rabbitmq.config
在 64 行,默認有這樣一句話:
%% {loopback_users, []},
,注意,該語句最后有一個逗號,等下是要去掉的
我們需要改為:
{loopback_users, []}
開啟 Web 界面管理:
rabbitmq-plugins enable rabbitmq_management
重啟 RabbitMQ 服務(wù):
service rabbitmq-server restart
開放防火墻端口:
sudo iptables -I INPUT -p tcp -m tcp --dport 15672 -j ACCEPT
sudo iptables -I INPUT -p tcp -m tcp --dport 5672 -j ACCEPT
我看到網(wǎng)上有的資料是說接下來用這兩句命令,
sudo service iptables save
sudo service iptables restart
我沒有成功,然后我直接把防火墻關(guān)閉了,使用如下命令:
systemctl stop firewalld.service
systemctl disable firewalld.service
這個時候瀏覽器訪問:
http://你的主機名:15672
這時候會調(diào)出來一個網(wǎng)頁如下:
這個時候我試了下guest帳號是不能登錄的,然后使用如下命令添加一個賬戶:
增加用戶admin,名字可以自己定義
rabbitmqctl add_user admin admin
設(shè)置admin用戶的管理員權(quán)限
rabbitmqctl set_user_tags admin administrator
顯示用戶列表和權(quán)限
rabbitmqctl list_users
好了,到此結(jié)束。過幾天可能會寫一些mqtt推送的東西...有興趣的童鞋歡迎一起探討