天天看点

《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运维实战总结