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)目中。