CentOS7.2安裝RabbitMQ筆記


身為.NET程序員,用着宇宙級IDE,干什么事都變得越來越懶了,Windows操作系統在手,能通過桌面點點點的方式何必找其他罪受呢。。於是RabbitMQ自然而然也就跑在Windows上了,說實話Windows配置RabbitMQ太惡心了,尤其對於手賤的人,總想着裝了卸卸了裝,慢慢的各種問題就出來了,不從裝系統解決起來備受煎熬。。當然服務器上肯定不這么干,但自己電腦肯定不知不覺的瞎折騰,然后就比如安裝的時候報這種問題:

重裝系統肯定是不可能的- -征戰這么久的電腦,桌面上的東西都懶得整理。。

Docker說實話真是個好東西,RabbitMQ鏡像一拉分分鍾就玩起來了,但Docker畢竟也有局限性,baidu查一下數據庫不適合容器化大致能讀到點弊端,隊列同理。

最近又回過頭來把RabbitMQ搞到CentOS上也是為了節約成本提升性能,RabbitMQ配置里存在一個hipe_compile的屬性,它的描述如下:

醒目的20-50%性能提升不是一點點的誘惑,然而蛋疼的是默認不開啟,而且很不友好的強調了下。。不支持Windows平台。。所以搞吧。。

安裝erlang

先下載最新的erlang安裝包,可以上官網下載頁面下載后扔到CentOS服務器上也可以服務器本地通過命令行下載 wget http://erlang.org/download/otp_src_19.3.tar.gz(當然使用wget,ifconfig命令需要先安裝插件yum install wget ,yum install net-tools)

下載完成后解壓:tar -xvzf otp_src_19.3.tar.gz

erlang在安裝前需要先安裝下它的依賴工具:

yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel

然后進入解壓文件對erlang進行安裝環境的配置(為了以后升級版本,此處就繼續使用加壓文件的名字了,至少我看得懂。。。。)

./configure --prefix=/usr/erlang --without-javac 

然后進行編譯make

然后安裝 make install

然后就可以驗證一下erlang是否安裝成功了

  

接下來需要配置一下環境變量,把Erlang配置到/etc/profile文件中並通過source /etc/profile設置生效

安裝RabbitMQ

下載RabbitMQ最新安裝包,同樣可以頁面下載

也可以通過命令行下載:wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.8/rabbitmq-server-3.6.8-1.el7.noarch.rpm

下載完成后依舊照着文檔走先執行下:

rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc

然后執行:

yum install rabbitmq-server-3.6.8-1.el7.noarch.rpm

這時候就是看點的過程了- -如果點正,系統鏡像工具比較全的。。直接就安裝后了。。點背的話后安裝失敗(對於我這Linux菜鳥就是時刻點背着。。):

 

點正中途輸個Y就完事了

面對點背的情況,看了下錯誤信息,既然可以忽略那就忽略吧- -

rpm -i --nodeps rabbitmq-server-3.6.8-1.el7.noarch.rpm

這樣也算安裝完成了。。

配置RabbitMQ

RabbitMQ的配置文檔還是寫的比較詳細的:通過配置文件搞的話也比較簡單,簡單理解就是創建倆文件rabbitmq-env.conf,rabbitmq.config然后都扔到/etc/rabbitmq目錄下即可

rabbitmq-env.conf中可以配置下消息存儲的位置,日志存儲的位置這些比較常用的設置,比如

RABBITMQ_MNESIA_BASE=/usr/local/rabbitmq-server/data
RABBITMQ_LOG_BASE=/usr/local/rabbitmq-server/log

這里需要注意的就是既然不使用默認目錄了,那目標目錄是需要權限的,於是可以執行命令給rabbitmq-server授權:

chmod -R 777 /usr/local/rabbitmq-server

對於rabbitmq.config配置文件的樣本可以在/usr/share/doc/rabbitmq-server/ 或者 /usr/share/doc/rabbitmq-server-3.6.8/里找到,就是一個rabbitmq.config.example的文件,去掉.example即可使用,RabbitMQ平時使用默認配置即可,此處修改下hipe_compile的屬性為true就算完事了!

去掉%%注釋,去掉屁股上的,即可。

然后保存安裝下RabbitMQ服務,

正如配置所說- -啟動慢。但跑起來的話性能很好!

啟動RabbitMQ服務可以通過命令:rabbitmq-server start

添加rabbitmq到啟動項可以通過命令:chkconfig rabbitmq-server on

還有就是開啟管理界面可以通過命令:rabbitmq-plugins enable rabbitmq_management 

注意:

對於將RabbitMQ添加到啟動項實際上就是安裝RabbitMQ時,會在/lib/systemd/system目錄下自動創建一個 rabbitmq-server.service 的配置文件用於系統開啟時執行(Centos 系統服務腳本目錄有系統(system)和用戶(user)兩種,如需要開機沒有登陸情況下就能運行的程序,存在系統服務(system)里,即:/lib/systemd/system;反之,用戶登錄后才能運行的程序,存在用戶(user)里/lib/systemd/system/ ,服務以.service結尾。)如果這里沒看到 rabbitmq-server.service文件則需要自己手動創建了,文件需要分配754權限即 chmod 745 rabbitmq-server.service,然后就可以測試執行以下了 systemctl start rabbitmq-server.service 然而這時候點背還是會報錯的。。

不多好在錯誤信息比較明顯。。

由於Erlang是自己編譯安裝的,這時候通過配置環境變量還是找不到erl的執行命令,簡單的方式就是創建快捷方式:

ln -s /usr/local/otp_src_19.3/bin/erl /usr/bin

 這樣就可以正常安裝RabbitMQ服務了。

chmod 745 rabbitmq-server.service配置中編寫的內容同樣要使用執行文件的實際位置的方式,簡單的配置比如:

啟動服務:systemctl start rabbitmq-server.service

設置開機啟動:systemctl enable rabbitmq-server.service

停止開機啟動:systemctl disable rabbitmq-server.service

重新啟動服務:systemctl restart rabbitmq-server.service

查看服務當前狀態:systemctl status rabbitmq-server.service

查看所有已啟動服務:systemctl list-units --type=service

RabbitMQ集群配置

集群配置需要注意的就是同步.erlang.cookie文件內容,這個文件所在的位置文檔里說是在/var/lib/rabbitmq/.erlang.cookie 或者$HOME/.erlang.cookie. 我一般就是既然RabbimtMQ安裝成功了隨便瞎個命令比如在RabbitMQ關閉的狀態下在關一次:rabbitmqctl stop然后就報錯了。。報錯的內容里醒目的寫着.erlang.cookie的位置。。windows同理。。(之所以說windows同理是因為我們的集群一台windows2012一台sentos7.2,鵝妹子嚶)

對於集群中erlang的版本最好一致,不能一致的話至少保證主版本號一致,而且祈禱高版本兼容低版本吧!(通常是沒問題的)

對於RabbitMQ貌似對版本要求比較嚴格,修正號不一致都不成功。。

還好刪除是比較方便的。。。

 

統一版本后就能連了,蛋疼。。

不關閉防火牆還要記得開放端口,通常4369,5672,15672,25672什么的是需要開放的:

firewall-cmd --add-port=4369/tcp --permanent

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM