詳解最新版RabbitMQ 基於RPM 方式的安裝


如何選擇安裝版本

已經不支持的發布系列

版本 最后補丁版本 首次發布時間 停止更新時間
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安裝步驟

下載安裝包

erlang
https://packagecloud.io/rabbitmq/erlang/packages/el/8/erlang-23.3.4.1-1.el8.x86_64.rpm
socat
http://www.rpmfind.net/linux/centos/8.3.2011/AppStream/x86_64/os/Packages/socat-1.7.3.3-2.el8.x86_64.rpm
RabbitMQ
https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.16/rabbitmq-server-3.8.16-1.el8.noarch.rpm

img

注意

各個包的對應關系也是有一定要求的,像筆者這一套就都是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

image

可以看到服務啟動成功和日志存放目錄(/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頁面了

img

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

img

完成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激活碼等更多免費資源等你來拿👇
image


免責聲明!

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



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