如何選擇安裝版本
已經不支持的發布系列
| 版本 | 最后補丁版本 | 首次發布時間 | 停止更新時間 |
|---|---|---|---|
| 3.7 | 3.7.28 | 2017年11月28日 | 2020年09月30日 |
| 3.6 | 3.6.16 | 2015年12月22日 | 2018年05月31日 |
| 3.5 | 3.5.8 | 2015年03月11日 | 2016年10月31日 |
| 3.4 | 3.4.4 | 2014年10月21日 | 2015年10月31日 |
| 3.3 | 3.3.5 | 2014年04月02日 | 2015年03月31日 |
| 3.2 | 3.2.4 | 2013年10月23日 | 2014年10月31日 |
| 3.1 | 3.1.5 | 2013年05月01日 | 2014年04月30日 |
| 3.0 | 3.0.4 | 2012年11月19日 | 2013年11月30日 |
我們選擇最新版:3.8.16 於2021年5月4日更新,但2019年10月1日就已經發布3.8 版本,並且3.7版本已經停止更新了。
基於RPM 方式安裝RabbitMQ
目前支持的基於 RPM 的發行版列表包括
- CentOS 8.x
- RedHat Enterprise Linux 8.x
- Fedora 32 到34 (使用 CentOS 8.x 軟件包)
用戶權限要求:RabbitMQ RPM 包需要sudo權限才能安裝和管理。
CentOS 8 阿里雲鏡像下載:
http://mirrors.aliyun.com/centos/8/isos/x86_64/CentOS-8.3.2011-x86_64-dvd1.iso
基於RPM安裝步驟
下載安裝包

注意
各個包的對應關系也是有一定要求的,像筆者這一套就都是el8的,下載的時候也一定要下載一樣的,每個包后面也都有標示,而且和linux版本顯示的4.18.0-80.el8.x86_64也是一致的(查看linux版本:uname -r)
將這三個rpm 上傳到linux 服務器中
使用CentOS 7 系統的請下載以下安裝包
https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.3.3-1.el7.x86_64.rpm
http://www.rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/socat-1.7.3.2-2.el7.x86_64.rpm
https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/7/rabbitmq-server-3.7.27-1.el7.noarch.rpm
安裝需要的依賴包
yum install build-essential kernel-devel gcc gcc-c++ m4 ncurses-devel openssl openssl-devel unixODBC unixODBC-devel
安裝RabbitMQ
分別安裝Erlang、Socat、RabbitMQ(一定要按照順序!)
安裝Erlang: rpm -ivh erlang-23.3.4.1-1.el8.x86_64.rpm
安裝Socat: rpm -ivh socat-1.7.3.3-2.el8.x86_64.rpm
安裝RabbitMQ:rpm -ivh rabbitmq-server-3.8.16-1.el8.noarch.rpm
報錯一
[/usr/lib/tmpfiles.d/libstoragemgmt.conf:1] Line references path below legacy directory /var/run/, updating /var/run/lsm → /run/lsm; please update the tmpfiles.d/ drop - in file accordingly.
[/usr/lib/tmpfiles.d/libstoragemgmt.conf:2] Line references path below legacy directory /var/run/, updating /var/run/lsm/ipc → /run/lsm/ipc; please update the tmpfiles.d/ drop-in file accordingly.
[/usr/lib/tmpfiles.d/mdadm.conf:1] Line references path below legacy directory /var/run/, updating /var/run/mdadm → /run/mdadm; please update the tmpfiles.d/ drop-in file accordingly.
[/usr/lib/tmpfiles.d/pesign.conf:1] Line references path below legacy directory /var/run/, updating /var/run/pesign → /run/pesign; please update the tmpfiles.d/ drop-in file accordingly.
[/usr/lib/tmpfiles.d/rabbitmq-server.conf:1] Line references path below legacy directory /var/run/, updating /var/run/rabbitmq → /run/rabbitmq; please update the tmpfiles.d/ drop-in file accordingly.
解決報錯一
將提示的需要修改的文件進行更改:舊→ 新
vim /usr/lib/tmpfiles.d/libstoragemgmt.conf
將 /var/run/lsm 改為 /run/lsm
vim /usr/lib/tmpfiles.d/mdadm.conf
將/var/run/mdadm 改為 /run/mdadm
vim /usr/lib/tmpfiles.d/pesign.conf
將/var/run/pesign 改為 /run/pesign
vim /usr/lib/tmpfiles.d/rabbitmq-server.conf
將/var/run/rabbitmq 改為 /run/rabbitmq
再執行:
rpm -ivh rabbitmq-server-3.8.16-1.el8.noarch.rpm
如果只顯示:已經安裝,沒有報錯那就安裝成功了。
RabbitMQ配置文件沒有,需要新增rabbitmq.conf
cd /etc/rabbitmq/
vim rabbitmq.conf
編輯內容如下: loopback_users=none
這里的意思是開放使用,rabbitmq默認創建的用戶guest,密碼也是guest,這個用戶默認只能是本機訪問,localhost或者127.0.0.1,從外部訪問需要添加上面的配置。
關於更多配置信息將在另一篇文章編寫。
啟動服務
rabbitmq-server start
報錯二
ERROR: epmd error for host RabbitMQ-101: timeout
解決報錯二
vim /etc/hosts
在最后添加:127.0.0.1 RabbitMQ-101
host 填寫提示錯誤的host,別填錯了
再次啟動服務
這個命令啟動屬於“前台啟動”,ctrl+c 退出服務,
使用后台啟動命令:systemctl start rabbitmq-server
查看啟動端口情況:lsof -i:5672
服務狀態:systemctl status rabbitmq-server

可以看到服務啟動成功和日志存放目錄(/var/log/rabbitmq)
服務管理命令
啟動服務:systemctl start rabbitmq-server
服務狀態:systemctl status rabbitmq-server
關閉服務:systemctl stop rabbitmq-server
重啟服務:systemctl restart rabbitmq-server
開啟rabbitmq 管理插件
/sbin/rabbitmq-plugins enable rabbitmq_management
systemctl restart rabbitmq-server
查看默認管理端口是否監聽成功:netstat -anp|grep 15672
防火牆端口開放
開放訪問端口15672: firewall-cmd -–permanent –-add-port=15672/tcp
重啟防火牆: firewall-cmd --reload
到此,就可以通過http://ip:15672進行登陸web頁面了

輸入默認的管理員賬號密碼:guest,guest

完成RabbitMQ 3.8.16的安裝
RabbitMQ 相關端口的作用
- 4369:epmd,RabbitMQ 節點和 CLI 工具使用的對等發現服務
- 5672、5671:由 AMQP 0-9-1 和 1.0 客戶端使用,分別為沒有和有 TLS
- 25672:用於節點間和 CLI 工具通信(Erlang 分發服務器端口)並從動態范圍分配(默認限制為單個端口,計算為 AMQP 端口 + 20000)。除非確實需要這些端口上的外部連接(例如,集群使用聯合或在子網外的機器上使用 CLI 工具),否則不應公開這些端口。
- 35672-35682:由 CLI 工具(Erlang 分發客戶端端口)用於與節點通信,並從動態范圍(計算為服務器分發端口 + 10000 到服務器分發端口 + 10010)分配。
- 15672:HTTP API客戶端、管理 UI和 rabbitmqadmin (僅當啟用管理插件時才會監聽)
- 61613、61614:沒有和有TLS 的STOMP 客戶端(僅當啟用了STOMP 插件時才會監聽)
- 1883、8883:MQTT 客戶端沒有和有TLS,如果啟用了MQTT 插件才會監聽
- 15674:STOMP-over-WebSockets 客戶端(僅當啟用了Web STOMP 插件時才會監聽)
- 15675:MQTT-over-WebSockets 客戶端(僅當啟用了Web MQTT 插件時才會監聽)
- 15692:Prometheus 指標(僅當啟用Prometheus 插件時才會監聽)
關注公眾號獲取最新技術信息、最全面試題
IDEA激活碼等更多免費資源等你來拿👇

