天天看點

《Linux運維實戰:Centos7.6基于docker-compose一鍵離線部署rabbitmq3.9.16+haproxy鏡像模式高可用負載均衡叢集》一、部署背景二、工具介紹三、工具下載下傳四、部署要求五、工具使用總結:整理不易,如果對你有幫助,可否點贊關注一下?

一、部署背景

由于業務系統的特殊性,我們需要面向不通的客戶安裝我們的業務系統,而作為基礎元件中的重要的一環,我們需要針對不同的客戶環境需要多次部署 rabbitmq鏡像模式高可用負載均衡叢集,作為一個運維工程師,提升工作效率也是工作中的重要一環。是以我覺得有必要針對rabbitmq3.9.16鏡像模式高可用負載均衡叢集編寫自動化部署工具。

說明:如果有興趣,可以從工具下載下傳中擷取下載下傳連結,此工具可幫助你快速了解一個自動化部署工具是如何編寫的?

二、工具介紹

實作功能如下:

1、支援rabbitmq單執行個體部署

2、支援單機haproxy+rabbitmq高可用鏡像叢集部署

3、支援三台或四台主機haproxy+rabbitmq高可用分布式鏡像叢集部署

4、支援資料目錄、日志目錄、插件目錄、配置檔案持久化

5、支援資料目錄、日志目錄、端口、賬号、密碼、記憶體閥值、磁盤閥值等參數靈活配置

6、支援建立、啟動、停止、檢測、解除安裝等功能

目錄結構如下:

《Linux運維實戰:Centos7.6基于docker-compose一鍵離線部署rabbitmq3.9.16+haproxy鏡像模式高可用負載均衡叢集》一、部署背景二、工具介紹三、工具下載下傳四、部署要求五、工具使用總結:整理不易,如果對你有幫助,可否點贊關注一下?

三、工具下載下傳

基于docker-compose一鍵離線部署haproxy+rabbitmq3.9.16高可用鏡像叢集工具

四、部署要求

1、建議提前關閉好防火牆和selinux。

2、rabbitmq高可用負載均衡叢集是基于docker和docker-compose工具, 是以需要提前安裝好docker和docker-compose工具。

五、工具使用

說明:工具使用非常簡單,隻需要修改變量檔案,一分鐘就可以快速幫你部署rabbitmq高可用負載均衡叢集。

5.1、單執行個體部署

說明:單執行個體部署是指在一台伺服器上部署單個rabbtimq服務。

1、複制變量檔案

#複制變量檔案
[[email protected] haproxy_rabbitmq]# cp single.conf.tpl single.conf
           

2、編輯變量檔案

#編輯變量檔案
[[email protected] haproxy_rabbitmq]# vim single.conf
# 建議填寫為目前磁盤最大存儲空間目錄,如果系統盤空間最大,建議填寫為/data,如果挂在盤空間最大,建議填寫為挂載目錄
export BASE_DIR="/data"

# 主控端内網ip位址,根據實際情況填寫
export RABBITMQ_HOST="192.168.1.191"

# 用戶端連接配接端口,端口不沖突情況下,預設不修改
export RABBITMQ_PORT="5672"

# web管理端口,端口不沖突情況下,預設不修改
export RABBITMQ_MANAGEMENT_PORT="15672"

# 預設使用者密碼,可根據實際情況填寫,注意密碼格式為<大小寫英文字母+數字>,根據實際情況填寫
export RABBITMQ_DEFAULT_USER="lolaage"
export RABBITMQ_DEFAULT_PASS="XnZKE7jGOn6SRXG"

# 記憶體告警閥值(相對值),建議值為0.4~0.7區間,根據實際情況修改
# 當MQ伺服器使用超過記憶體閥值時,會觸發告警,并阻塞所有正在釋出消息的連接配接 
export VM_MEMORY_HIGH_WATERMARK_RELATIVE="0.6"

# 資料目錄磁盤空間閥值(絕對值),根據實際情況修改
# 當MQ伺服器資料目錄的磁盤空間超過閥值時,會觸發告警,并阻塞所有正在釋出消息的連接配接
export DISK_FREE_LIMIT_ABSOLUTE="5GB"

# 資料存儲目錄,一般選擇一個存儲空間比較大且速度快的分區目錄
export RABBITMQ_DATA_DIR="${BASE_DIR}/basic-data"
           

3、執行部署腳本

《Linux運維實戰:Centos7.6基于docker-compose一鍵離線部署rabbitmq3.9.16+haproxy鏡像模式高可用負載均衡叢集》一、部署背景二、工具介紹三、工具下載下傳四、部署要求五、工具使用總結:整理不易,如果對你有幫助,可否點贊關注一下?

4、登入管理平台

《Linux運維實戰:Centos7.6基于docker-compose一鍵離線部署rabbitmq3.9.16+haproxy鏡像模式高可用負載均衡叢集》一、部署背景二、工具介紹三、工具下載下傳四、部署要求五、工具使用總結:整理不易,如果對你有幫助,可否點贊關注一下?

5.2、單機僞叢集部署

說明:單機僞叢集是指在一台機器上部署haproxy+rabbitmq鏡像高可用負載均衡叢集。

1、複制變量檔案

#複制變量檔案
[[email protected] haproxy_rabbitmq]# cp allinone.conf.tpl allinone.conf
           

2、編輯變量檔案

#編輯變量檔案
[[email protected] haproxy_rabbitmq]# vim allinone.conf
# 建議填寫為目前磁盤最大存儲空間目錄,如果系統盤空間最大,建議填寫為/data,如果挂在盤空間最大,建議填寫為挂載目錄
export BASE_DIR="/data"

# 預設使用者密碼,可根據實際情況填寫,注意密碼格式為<大小寫英文字母+數字>,根據實際情況填寫
export RABBITMQ_DEFAULT_USER="lolaage"
export RABBITMQ_DEFAULT_PASS="XnZKE7jGOn6SRXG"

# 資料存儲根目錄,一般選擇一個存儲空間比較大且速度快的分區目錄,預設不修改
export RABBITMQ_DATA_DIR="${BASE_DIR}/basic-data"

# 記憶體告警閥值(相對值),建議值為0.4~0.7區間,根據實際情況修改
# 當MQ伺服器使用超過記憶體閥值時,會觸發告警,并阻塞所有正在釋出消息的連接配接 
export VM_MEMORY_HIGH_WATERMARK_RELATIVE="0.6"

# 資料目錄磁盤空間閥值(絕對值),根據實際情況修改
# 當MQ伺服器資料目錄的磁盤空間超過閥值時,會觸發告警,并阻塞所有正在釋出消息的連接配接
export DISK_FREE_LIMIT_ABSOLUTE="5GB"

# 目前主控端ip位址,根據實際情況填寫
export RABBITMQ_HOST="192.168.1.191"
#################################################<mq1磁盤節點變量>######################################################
# mq1<磁盤節點>主控端内網ip位址,預設不修改
export RABBITMQ1_HOST="${RABBITMQ_HOST}"

# mq1節點供用戶端建立連接配接端口,端口不沖突情況下,預設不修改
export RABBITMQ1_PORT="3001"

# mq1節點web頁面管理端口,端口不沖突情況下,預設不修改
export RABBITMQ1_MANAGEMENT_PORT="13001"
#################################################<mq2記憶體節點變量>######################################################
# mq2<記憶體節點>主控端内網ip位址,預設不修改
export RABBITMQ2_HOST="${RABBITMQ_HOST}"

# mq2節點供用戶端建立連接配接端口,端口不沖突情況下,預設不修改
export RABBITMQ2_PORT="3002"

# mq2節點web頁面管理端口,端口不沖突情況下,預設不修改
export RABBITMQ2_MANAGEMENT_PORT="13002"
#################################################<mq3記憶體節點變量>######################################################
# mq3<記憶體節點>主控端内網ip位址,預設不修改
export RABBITMQ3_HOST="${RABBITMQ_HOST}"

# mq3節點供用戶端建立連接配接端口,端口不沖突情況下,預設不修改
export RABBITMQ3_PORT="3003"

# mq3節點web頁面管理端口,端口不沖突情況下,預設不修改
export RABBITMQ3_MANAGEMENT_PORT="13003"
###############################################<haproxy節點變量>####################################################
# haproxy節點主控端内網ip位址,預設不修改
export HAPROXY_HOST="${RABBITMQ_HOST}"

# haproxy節點<rabbitmq叢集業務負載均衡端口>,端口不沖突情況下,建議不修改
export HAPROXY_RABBITMQ_PORT="5672"

# haproxy節點<rabbitmq叢集管理頁面負載均衡端口>,端口不沖突情況下,建議不修改
export HAPROXY_RABBITMQ_MANAGEMENT_PORT="15672"

# haproxy管理頁面端口,端口不沖突情況下,建議不修改
export HAPROXY_MANAGEMENT_PORT="15000"
           

3、執行部署腳本

《Linux運維實戰:Centos7.6基于docker-compose一鍵離線部署rabbitmq3.9.16+haproxy鏡像模式高可用負載均衡叢集》一、部署背景二、工具介紹三、工具下載下傳四、部署要求五、工具使用總結:整理不易,如果對你有幫助,可否點贊關注一下?

4、登入rabbtimq管理平台

《Linux運維實戰:Centos7.6基于docker-compose一鍵離線部署rabbitmq3.9.16+haproxy鏡像模式高可用負載均衡叢集》一、部署背景二、工具介紹三、工具下載下傳四、部署要求五、工具使用總結:整理不易,如果對你有幫助,可否點贊關注一下?

5、登入haproxy管理平台

《Linux運維實戰:Centos7.6基于docker-compose一鍵離線部署rabbitmq3.9.16+haproxy鏡像模式高可用負載均衡叢集》一、部署背景二、工具介紹三、工具下載下傳四、部署要求五、工具使用總結:整理不易,如果對你有幫助,可否點贊關注一下?

5.3、分布式叢集部署

說明:分布式叢集部署是指在多台機器上部署haproxy+rabbitmq鏡像高可用負載均衡叢集。

1、複制變量檔案

2、編輯變量檔案

# 建議填寫為目前磁盤最大存儲空間目錄,如果系統盤空間最大,建議填寫為/data,如果挂在盤空間最大,建議填寫為挂載目錄
export BASE_DIR="/data"

# 預設使用者密碼,可根據實際情況填寫,注意密碼格式為<大小寫英文字母+數字>,根據實際情況填寫
export RABBITMQ_DEFAULT_USER="lolaage"
export RABBITMQ_DEFAULT_PASS="XnZKE7jGOn6SRXG"

# 資料存儲根目錄,一般選擇一個存儲空間比較大且速度快的分區目錄,預設不修改
export RABBITMQ_DATA_DIR="${BASE_DIR}/basic-data"

# 記憶體告警閥值(相對值),建議值為0.4~0.7區間,根據實際情況修改
# 當MQ伺服器使用超過記憶體閥值時,會觸發告警,并阻塞所有正在釋出消息的連接配接 
export VM_MEMORY_HIGH_WATERMARK_RELATIVE="0.6"

# 資料目錄磁盤空間閥值(絕對值),根據實際情況修改
# 當MQ伺服器資料目錄的磁盤空間超過閥值時,會觸發告警,并阻塞所有正在釋出消息的連接配接
export DISK_FREE_LIMIT_ABSOLUTE="5GB"
###################################################<mq節點>########################################################
# mq1<磁盤節點>主控端内網ip位址,根據實際情況填寫
export RABBITMQ1_HOST="192.168.1.191"

# mq2<記憶體節點>主控端内網ip位址,根據實際情況填寫
export RABBITMQ2_HOST="192.168.1.192"

# mq3<記憶體節點>主控端内網ip位址,根據實際情況填寫
export RABBITMQ3_HOST="192.168.1.193"
####################################################<haproxy>#######################################################
# haproxy節點主控端内網ip位址,根據實際情況填寫
export HAPROXY_HOST="192.168.1.194"

# haproxy節點<rabbitmq叢集業務負載均衡端口>,端口不沖突情況下,建議不修改
export HAPROXY_RABBITMQ_PORT="5673"

# haproxy節點<rabbitmq叢集管理頁面負載均衡端口>,端口不沖突情況下,建議不修改
export HAPROXY_RABBITMQ_MANAGEMENT_PORT="15673"

# haprox<管理頁面端口>,端口不沖突情況下,建議不修改
export HAPROXY_MANAGEMENT_PORT="15000"
           

3、将haproxy_rabbitmq部署包拷貝到需要部署的主機上

[[email protected] pkgs]# scp -r haproxy_rabbitmq [email protected]:/data/pkgs
[[email protected] pkgs]# scp -r haproxy_rabbitmq [email protected]:/data/pkgs
[[email protected] pkgs]# scp -r haproxy_rabbitmq [email protected]:/data/pkgs
           

4、執行部署腳本

#根據上述變量檔案
#1、192.168.1.191主機上執行
[[email protected] haproxy_rabbitmq]# ./op.sh build mq1

#2、192.168.1.192主機上執行
[[email protected] haproxy_rabbitmq]# ./op.sh build mq2

#3、192.168.1.193主機上執行
[[email protected] haproxy_rabbitmq]# ./op.sh build mq3

#4、192.168.1.194主機上執行
[[email protected] haproxy_rabbitmq]# ./op.sh build haproxy
           

4、登入rabbtimq管理平台

《Linux運維實戰:Centos7.6基于docker-compose一鍵離線部署rabbitmq3.9.16+haproxy鏡像模式高可用負載均衡叢集》一、部署背景二、工具介紹三、工具下載下傳四、部署要求五、工具使用總結:整理不易,如果對你有幫助,可否點贊關注一下?

5、登入haproxy管理平台

《Linux運維實戰:Centos7.6基于docker-compose一鍵離線部署rabbitmq3.9.16+haproxy鏡像模式高可用負載均衡叢集》一、部署背景二、工具介紹三、工具下載下傳四、部署要求五、工具使用總結:整理不易,如果對你有幫助,可否點贊關注一下?

總結:整理不易,如果對你有幫助,可否點贊關注一下?

更多詳細内容請參考:Linux運維實戰總結