YUM下載並安裝RabbitMQ

什麼是RabbitMQ


RabbitMQ是由Erlang語言編寫的實現了高級消息隊列協議(AMQP)的開源消息代理軟件(也可稱爲 面向消息的中間件)。支持Windows、Linux/Unix、MAC OS X操作系統和包括JAVA在內的多種編程語言。

AMQP,即Advanced Message Queuing Protocol,一個提供統一消息服務的應用層標準高級消息隊列協議,是應用層協議的一個開放標準,爲面向消息的中間件設計。基於此協議的客戶端與消息中間件可傳遞消息,並不受客戶端/中間件不同產品,不同的開發語言等條件的限制。

官方文檔地址:


rabbitMQ的java驅動官方文檔地址
版本5.3.0:https://rabbitmq.github.io/rabbitmq-java-client/api/current/overview-summary.html
版本4.7.0:https://rabbitmq.github.io/rabbitmq-java-client/api/4.x.x/overview-summary.html

spring AMQP 官方文檔地址
版本1.7.3:https://docs.spring.io/spring-amqp/docs/1.7.3.BUILD-SNAPSHOT/api/
 

使用場景(解決了什麼問題)

名稱 簡單說明
異步處理 應用之間的異步處理問題
應用解耦 應用之間的解耦問題
流量削峯 對應用的流量進行削峯,如秒殺場景
日誌處理 應用之間的日誌收集,假設程序裏面每個類,每個方法都要定義日誌記錄,單單說效率就不好


 

Rabblit官網地址

Rabblit官網地址:http://www.rabbitmq.com/

Erlang下載環境(網頁往下拖有Erlang的官方安裝方式,此方式不需要下載)

地址:https://www.erlang-solutions.com/resources/download.html

 

第一步安裝Erlang使用存儲庫安裝

1.添加存儲庫條目

要將Erlang Solutions存儲庫(包括用於驗證已簽名軟件包的公共密鑰)添加到您的系統,請調用以下命令:

wget https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm
rpm -Uvh erlang-solutions-2.0-1.noarch.rpm

或者:手動添加存儲庫條目

RPM軟件包已簽名。要添加Erlang Solutions鍵,請執行以下命令:

rpm --import https://packages.erlang-solutions.com/rpm/erlang_solutions.asc

將以下行添加到"/etc/yum.repos.d/"中的erlang_solutions.repo文件中:

[erlang-solutions]
name=CentOS $releasever - $basearch - Erlang Solutions
baseurl=https://packages.erlang-solutions.com/rpm/centos/$releasever/$basearch
gpgcheck=1
gpgkey=https://packages.erlang-solutions.com/rpm/erlang_solutions.asc
enabled=1

2.添加具有依賴性的存儲庫

軟件包需要一些標準存儲庫中不存在的軟件包。請確保已啓用EPEL存儲庫

3.安裝Erlang

調用以下命令來安裝“ erlang”軟件包:

sudo yum install erlang

安裝成功後圖片: 

 

驗證輸入erl即可進入Erlang 

 

第二步,手動安裝RabbitMQ

在使用Yum存儲庫之前,必須先導入RabbitMQ簽名密鑰。這使RPM工具信任存儲庫中提供的軟件包上的簽名。爲此,以超級用戶身份運行rpm --import

rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc

 爲了使用Yum存儲庫,必須在/etc/yum.repos.d/目錄下添加一個.repo文件(例如,rebbitmq.repo)。在不同發行版之間,文件的內容將略有不同(例如,CentOS 7和8與CentOS 6與OpenSUSE)。

以下示例

在CentOS 7上將安裝RabbitMQ 3.8的存儲庫:

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/8/
gpgcheck=0
repo_gpgcheck=0
enabled=1

在CentOS 7上:

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/7/
gpgcheck=0
repo_gpgcheck=0
enabled=1

與CentOS 6相同:

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/6/
gpgcheck=0
repo_gpgcheck=0
enabled=1

以下示例針對OpenSUSE:

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/opensuse/42.1/
gpgcheck=0
repo_gpgcheck=0
enabled=1

以下示例針對SLES 11.x:

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/sles/11
gpgcheck=0
repo_gpgcheck=0
enabled=1

以下示例設置了一個存儲庫,該存儲庫將在CentOS 7上安裝RabbitMQ 3.7。請注意,RabbitMQ 3.7 在2020年將不再受支持

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/7/
gpgcheck=0
repo_gpgcheck=0
enabled=1

具有rpm和已下載的RPM

下載服務器軟件包後,以“ root”身份發出以下命令:

rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
#此示例假定軟件包的CentOS 8版本。
#對於CentOS 7,將“ el8”替換爲“ el7”。
yum install rabbitmq-server-3.8.1-1.el8.noarch.rpm

RabbitMQ公共簽名密鑰也可以從rabbitmq.com下載

rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
#此示例假定軟件包的CentOS 8版本。
#對於CentOS 7,將“ el8”替換爲“ el7”。
yum install rabbitmq-server-3.8.1-1.el8.noarch.rpm

下載服務器

在某些情況下,下載軟件包並手動安裝可能會更容易。該軟件包可以從GitHub下載。

描述 下載 簽名
適用於RHEL Linux 8.x,CentOS 8.x,Fedora 28+的RPM(支持systemd) rabbitmq-server-3.8.1-1.el8.noarch.rpm 簽名
適用於RHEL Linux 7.x,CentOS 7.x,Fedora 24+的RPM(支持systemd) rabbitmq-server-3.8.1-1.el7.noarch.rpm 簽名
RHEL Linux 6.x,CentOS 6.x,Fedora之前的RPM 19 rabbitmq-server-3.8.1-1.el6.noarch.rpm 簽名
適用於openSUSE Linux的RPM rabbitmq-server-3.8.1-1.suse.noarch.rpm 簽名
SLES 11.x的RPM rabbitmq-server-3.8.1-1.sles11.noarch.rpm 簽名

運行RabbitMQ服務器

啓動服務器

安裝RabbitMQ服務器軟件包時,默認情況下未將服務器作爲守護程序啓動。在系統引導時默認啓動守護程序,以管理員身份運行

chkconfig rabbitmq-server on

作爲管理員,像往常一樣啓動和停止服務器:

/sbin/service rabbitmq-server start

/sbin/service rabbitmq-server stop

安裝完畢,查看RabbMQ狀態:service rabbitmq-server status
設置開啓啓動:sudo chkconfig rabbitmq-server on
開啓WEB管理頁面:sudo rabbitmq-plugins enable rabbitmq_management
默認WEB管理的登錄帳號和密碼統一爲:guest


默認RabbitMQ擁有如下端口號:

端口號 簡單說明
15672     HTTP API客戶端,管理UIRabbitmqadmin (僅在啓用了管理插件的情況下)
5672,5671 由不帶TLS和帶TLS的AMQP 0-9-1和1.0客戶端使用
4369     epmd,RabbitMQ節點和CLI工具使用的對等發現服務
25672     用於節點間和CLI工具通信(Erlang分發服務器端口),並從動態範圍分配(默認情況下限制爲單個端口,計算爲AMQP端口+ 20000)。除非確實需要這些端口上的外部連接(例如,羣集使用聯合身份驗證或在子網外部的計算機上使用CLI工具),否則這些端口不應公開。有關詳細信息,請參見網絡指南
35672-35682 由CLI工具(Erlang分發客戶端端口)用於與節點進行通信,並從動態範圍(計算爲服務器分發端口+ 10000通過服務器分發端口+ 10010)分配。有關詳細信息,請參見網絡指南
61613, 61614 不帶TLS和帶TLS的STOMP客戶端(僅在啓用STOMP插件的情況下)
1883, 8883  (如果啓用了MQTT插件,則不帶TLS和具有TLS的MQTT客戶端
15674     STOMP-over-WebSockets客戶端(僅在啓用了Web STOMP插件的情況下)
15675 MQTT-over-WebSockets客戶端(僅在啓用Web MQTT插件的情況下)
15692 Prometheus指標(僅在啓用Prometheus插件的情況下)

可以將RabbitMQ配置 爲使用不同的端口和特定的網絡接口。 

一般常用就156725672防火牆進行放出端口。

在Linux上控制系統限制

運行生產工作負載的RabbitMQ安裝可能需要系統限制和內核參數調整,才能處理相當數量的併發連接和隊列。需要調整的主要設置是打開文件的最大數量,也稱爲ulimit -n。對於消息傳遞代理,許多操作系統上的默認值都太低(在幾個Linux發行版中爲1024)。我們建議在生產環境中爲用戶Rabbitmq至少允許65536個文件描述符。4096應該足以應付許多開發工作負載。

有兩個限制:操作系統內核允許的最大打開文件數(fs.file-max)和每個用戶的限制(ulimit -n)。前者必須高於後者。

外部訪問192.168.153.128:15672/#/users,如下圖:
但是此時是登錄不了的,默認guest只能localhost訪問
但是我們並不直接使用guest,我們新建一個新的用戶來操作登錄
添加RabbitMQ用戶:sudo rabbitmqctl add_user root 123456
帳號:root   密碼:123456
賦予RabbitMQ用戶角色:sudo rabbitmqctl set_user_tags root administrator
賦予用戶默認vhost的全部操作權限:sudo rabbitmqctl set_permissions -p / root "." "." ".*"
查看用戶的權限:sudo rabbitmqctl list_user_permissions username
查看全部用戶:sudo rabbitmqctl list_users
此操作刪除guest用戶,我們自己創建新的用戶來使用
刪除用戶:sudo rabbitmqctl delete_user guest
最後一步,操作完畢,要記得重啓,記得重啓,記得重啓。三遍
service rabbitmq-server restart
重啓後我們再訪問:http://192.168.153.128:15672/#/users進行登錄
至此,安裝結束。。。。

日誌文件和管理

服務器日誌位於可配置目錄下,當通過Linux軟件包管理器安裝RabbitMQ時,該目錄通常默認爲/var/log/rabbitmq

RABBITMQ_LOG_BASE可用於覆蓋日誌目錄位置

本文參考:

https://www.rabbitmq.com/install-rpm.html#install-erlang

https://www.erlang-solutions.com/resources/download.html

https://blog.csdn.net/u011709128/article/details/81082331#rabblit%E5%AE%98%E7%BD%91%E5%9C%B0%E5%9D%80

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章