1. RabbitMQ安裝

RabbitMQ支持多種操作系統(tǒng)平臺,包括Windows、Linux和macOS等。以下主要介紹在CentOS7系統(tǒng)上的安裝步驟。

(1) 添加RabbitMQ官方y(tǒng)um存儲庫:

sudo rpm -Uvh https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.8/rabbitmq-server-3.8.8-1.el7.noarch.rpm

(2) 安裝RabbitMQ服務(wù):

sudo yum install rabbitmq-server -y

(3) 啟動RabbitMQ服務(wù):

sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server

(4) 檢查RabbitMQ服務(wù)狀態(tài):

sudo systemctl status rabbitmq-server

2. RabbitMQ管理插件

RabbitMQ提供了一個強(qiáng)大的管理插件,可以幫助我們更好地管理和監(jiān)控RabbitMQ集群。

(1) 啟用管理插件:

sudo rabbitmq-plugins enable rabbitmq_management
sudo systemctl restart rabbitmq-server

(2) 訪問RabbitMQ管理界面:

打開瀏覽器,訪問 http://localhost:15672 ,默認(rèn)的用戶名和密碼都是 guest。

3. RabbitMQ配置文件

RabbitMQ的主配置文件位于 /etc/rabbitmq/rabbitmq.conf ,其中包含了很多常用的配置項(xiàng)。

(1) 常用配置項(xiàng):

# 節(jié)點(diǎn)名稱
node_name = rabbit@my-rabbit

# 集群配置
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config
cluster_formation.classic_config.nodes.1 = rabbit@node1
cluster_formation.classic_config.nodes.2 = rabbit@node2

# 消息持久化
default_vhost = /
default_user = guest
default_pass = guest
default_permissions.configure = .*
default_permissions.write = .*
default_permissions.read = .*

# 日志配置
log.console.level = info
log.console.formatter = common_formatter

(2) 配置文件位置和加載順序:

RabbitMQ的配置文件可以存放在多個位置,加載順序如下:

(a) /etc/rabbitmq/rabbitmq.conf

(b) ${runner_etc_dir}/rabbitmq.conf (Erlang 運(yùn)行時等價目錄)

(c) $RABBITMQ_HOME/etc/rabbitmq/rabbitmq.conf

(d) rabbitmq.config文件 (舊版配置方式,不建議使用)

4. RabbitMQ集群配置

RabbitMQ支持集群部署,可以提高消息處理能力和可用性。

(1) 集群節(jié)點(diǎn)發(fā)現(xiàn):

RabbitMQ支持多種節(jié)點(diǎn)發(fā)現(xiàn)機(jī)制,包括基于文件、Kubernetes、Consul等。以基于文件的方式為例:

# 在每個節(jié)點(diǎn)上配置集群信息
cluster_formation.peer_discovery_backend = rabbit_peer_discovery_classic_config
cluster_formation.classic_config.nodes.1 = rabbit@node1
cluster_formation.classic_config.nodes.2 = rabbit@node2

(2) 節(jié)點(diǎn)加入集群:

在第二個節(jié)點(diǎn)上運(yùn)行以下命令加入集群:

sudo rabbitmqctl stop_app
sudo rabbitmqctl join_cluster rabbit@node1
sudo rabbitmqctl start_app

(3) 集群管理:

可以使用RabbitMQ管理界面或命令行工具對集群進(jìn)行管理和監(jiān)控。

5. RabbitMQ高可用

為了提高RabbitMQ的可用性,可以配置鏡像隊(duì)列。

(1) 創(chuàng)建鏡像隊(duì)列:

# 在管理界面的"Policies"頁面中添加策略
Name: ha-all
Pattern: ^
Definition: {"ha-mode":"all","ha-sync-mode":"automatic"}

(2) 測試高可用:

關(guān)閉一個節(jié)點(diǎn),觀察隊(duì)列數(shù)據(jù)是否在其他節(jié)點(diǎn)中同步。

6. 常見問題處理

(1) 查看RabbitMQ日志:

日志文件位于 /var/log/rabbitmq/ 目錄下,可以查看RabbitMQ的運(yùn)行狀態(tài)和錯誤信息。

(2) 重置RabbitMQ數(shù)據(jù):

sudo rabbitmqctl stop_app
sudo rabbitmqctl reset
sudo rabbitmqctl start_app

(3) 擴(kuò)展RabbitMQ存儲空間:

可以通過配置 disk_free_limit 參數(shù)來設(shè)置RabbitMQ的最小可用磁盤空間。

綜上所述,RabbitMQ是一款功能豐富、易用性強(qiáng)的消息隊(duì)列中間件,通過本文的介紹,相信您已經(jīng)掌握了RabbitMQ的安裝部署和基本配置。后續(xù)還可以根據(jù)實(shí)際需求,進(jìn)一步了解RabbitMQ的集群管理、高可用配置等高級功能,以更好地將RabbitMQ應(yīng)用于您的項(xiàng)目中。