RabbitMQ是實現了高級消息隊列協議(AMQP)的開源消息代理軟件(亦稱面向消息的中間件)。RabbitMQ服務器是用Erlang語言編寫的,而集羣和故障轉移是構建在開放電信平臺框架上的。java
爲何叫RabbitMQ?
不少人估計和我同樣也有這個疑問,《RabbitMQ實戰》一書給出了答案:兔子行動很是迅速並且繁殖起來也很是瘋狂,因此就把Rabbit用做這個分佈式軟件的命名(就是真麼簡單)。linux
安裝依賴文件shell
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget
若不執行以上的依賴文件的安裝,則在執行./configure --prefix=/usr/local/erlang的過程當中,最後兩行會出現以下錯誤:瀏覽器
configure: error: No curses library functions found configure: error: /bin/sh '/home/ding/otp_src_20.3/erts/configure' failed for erts
因在安裝erlang的make過程當中會用到java命令,故安裝erlang前請檢查系統中是否存在jdk,若沒有需先安裝jdk
安裝erlang語言環境:安全
wget http://www.erlang.org/download/otp_src_20.3.tar.gz #下載erlang包
tar -xvf otp_src_20.3.tar.gz #解壓
cd otp_src_20.3/ #切換到安裝路徑
./configure --prefix=/usr/local/erlang #生產安裝配置
make && make install #編譯安裝
配置erlang環境變量bash
vi /etc/profile #在底部添加如下內容
#set erlang environment ERL_HOME=/usr/local/erlang PATH=$ERL_HOME/bin:$PATH export ERL_HOME PATH
source /etc/profile #使以上配置生效
測試一下是否安裝成功,在控制檯輸入命令erl服務器
erl #若是進入erlang的shell則證實安裝成功,退出便可。
安裝RabbitMQ
下載安裝(也可在http://www.rabbitmq.com/releases/rabbitmq-server/下選擇對應的版本)框架
cd /usr/local #切換到計劃安裝RabbitMQ的目錄,我這裏放在/usr/local
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.7.4/rabbitmq-server-generic-unix-3.7.14.tar.xz #下載RabbitMQ安裝包
xz -d rabbitmq-server-generic-unix-3.7.14.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.7.14.tar
mv rabbitmq_server-3.7.14/ rabbitmq
配置rabbitmq環境變量:tcp
vi /etc/profile
#set rabbitmq environment export PATH=$PATH:/usr/local/rabbitmq/sbin
保存退出分佈式
source /etc/profile
啓動服務
rabbitmq-server -detached //啓動rabbitmq,-detached表明後臺守護進程方式啓動。
若是啓動失敗,可嘗試
nohup rabbitmq-server restart >rabbitmqLOG.log 2>&1 &
(中止rabbitmq:rabbitmqctl stop)
查看狀態,若是顯示以下截圖說明安裝成功:
rabbitmqctl status
配合網頁插件
首先建立目錄,不然可能報錯:
mkdir /etc/rabbitmq
而後啓用插件:
rabbitmq-plugins enable rabbitmq_management
配置防火牆:
配置linux 端口 15672 網頁管理 5672 AMQP端口:(阿里雲服務器只須要將1567二、5672端口加入安全組便可,無需如下3步操做)
firewall-cmd --permanent --add-port=15672/tcp
firewall-cmd --permanent --add-port=5672/tcp
systemctl restart firewalld.service
如今你在瀏覽器中輸入服務器IP:15672 就能夠看到RabbitMQ的WEB管理頁面了,是否是很興奮,但是你沒有帳號密碼,別急
配置訪問帳號密碼的和權限
默認網頁是不容許訪問的,須要增長一個用戶修改一下權限,代碼以下:
rabbitmqctl add_user super super #添加用戶,後面兩個參數分別是用戶名和密碼,我這都用super了。
rabbitmqctl set_permissions -p / super ".*" ".*" ".*" #添加權限
rabbitmqctl set_user_tags super administrator #修改用戶角色
若是使用的是阿里雲服務器,還須要在阿里雲控制檯安全組裏開啓5672和15672端口。
安裝延時任務插件(非必須)
linux安裝rabbitmq_delayed_message_exchange插件(可經過該插件的x-delay-message實現延時消息隊列)
檢查本地是否安裝rabbitmq_delayed_message_exchange
rabbitmq-plugins list
wget wget https://dl.bintray.com/rabbitmq/community-plugins/3.7.x/rabbitmq_delayed_message_exchange/rabbitmq_delayed_message_exchange-20171201-3.7.x.zip
unzip,解壓到/usr/local/rabbitmq/plugins/rabbitmq_delayed_message_exchange-20171201-3.7.x.ez
若是提示找不到命令,也可經過https://dl.bintray.com/rabbitmq/community-plugins/3.7.x/rabbitmq_delayed_message_exchange/下載壓縮文件到本地,解壓後在將rabbitmq_delayed_message_exchange-20171201-3.7.x.ez上傳到/usr/local/rabbitmq/plugins/目錄下
安裝插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
出現started 1 plugins.表明成功
參考博文: