RabbitMQ是實現了高級消息隊列協議(AMQP)的開源消息代理軟件(亦稱面向消息的中間件)。RabbitMQ服務器是用Erlang語言編寫的,而集群和故障轉移是構建在開放電信平台框架上的。
為什么叫RabbitMQ?
很多人估計和我一樣也有這個疑問,《RabbitMQ實戰》一書給出了答案:兔子行動非常迅速而且繁殖起來也非常瘋狂,所以就把Rabbit用作這個分布式軟件的命名(就是真么簡單)。
安裝依賴文件
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環境變量
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 https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.4/rabbitmq-server-generic-unix-3.7.4.tar.xz
# wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.7.4/rabbitmq-server-generic-unix-3.7.14.tar.xz (此下載源失效)
xz -d rabbitmq-server-generic-unix-3.7.4.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.7.4.tar
mv rabbitmq_server-3.7.4/ rabbitmq
配置rabbitmq環境變量:
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端口:(阿里雲服務器只需要將15672、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.代表成功
參考博文:
