数据库负载均衡部署(使用ipvadm ,docker)

文章目录



要在Docker中使用IPVS配置MariaDB数据库的高可用集群,并设置VIP地址为192.168.201.4,密码全部设为123456你可以按照以下步骤进行操作:

第一步 创建一个docker网络

docker network create --subnet=192.168.200.0/24 mariadb_network

第二步 创建集群容器

运行MariaDB容器:
运行多个MariaDB容器作为数据库节点,并将其连接到上面创建的网络中。每个容器都需要指定唯一的容器名称、IP地址和环境变量。

docker run -d --name mariadb_node1 --network=mariadb_network --ip=192.168.200.10 -e MYSQL_ROOT_PASSWORD=123123  mariadbdocker run -d --name mariadb_node2 --network=mariadb_network --ip=192.168.200.20 -e MYSQL_ROOT_PASSWORD=123123  mariadb docker run -d --name mariadb_node3 --network=mariadb_network --ip=192.168.200.30 -e MYSQL_ROOT_PASSWORD=123123  mariadb 

第三步 安装ipvadm工具

安装并配置IPVS:

yum  -y install ipvsadm

在宿主机上安装并配置IPVS工具。具体步骤可能因操作系统而异,请根据你所使用的操作系统进行配置。

#要设置 IPVS 高可用集群参数,可以使用 ipvsadm 命令行工具。下面是一些常用的命令示例:
#添加一个虚拟服务器:
ipvsadm -A -t 虚拟服务器IP:端口 -s 调度算法
#添加真实服务器:
ipvsadm -a -t 虚拟服务器IP:端口 -r 真实服务器IP:端口 -g
其中 -g 表示将真实服务器标记为活动状态。
#删除虚拟服务器:
ipvsadm -D -t 虚拟服务器IP:端口
#删除真实服务器:
ipvsadm -d -t 虚拟服务器IP:端口 -r 真实服务器IP:端口
#设置连接超时时间:
ipvsadm --set 虚拟服务器IP:端口 --timeout 超时时间
#设置调度算法:
ipvsadm --set 虚拟服务器IP:端口 --scheduler 调度算法
#查看 IPVS 配置:
ipvsadm -l

第四步 添加节点 设定规则

配置IPVS规则:
在宿主机上配置IPVS规则,将VIP地址映射到MariaDB容器的IP地址上。在终端中运行以下命令:

#添加一个虚拟服务器
ipvsadm -A -t 192.168.200.4:3306 -s rr
#添加真实服务器 第一台(mariadb_node1)
ipvsadm -a -t 192.168.200.4:3306 -r 192.168.200.10:3306  -m
#添加mariadb_node2
ipvsadm -a -t 192.168.200.4:3306 -r 192.168.200.10:3306  -m
#mariadb_node3
ipvsadm -a -t 192.168.200.4:3306 -r 192.168.201.30:3306 -m

#验证配置:在宿主机上尝试连接到VIP地址,确认是否能够成功连接到其中一个MariaDB容器。
mysql -h 192.168.200.4 -uroot -p123123
#会随机选择一个服务器去登录

#验证方法
#查看hostname或者server_id ,但是设置server_id要设置挂在卷然后逐个修改,这里为了方便可以去查看真实服务器的hostname ,当然这里查询到的hostname也就是容器的id。
select @@hostname

ipvsadm 搭建数据库高可用集群

高可用集群在计算机系统中起到了至关重要的作用,特别是在面对系统故障、硬件故障或者其他意外情况时。以下是高可用集群的一些主要作用:

  1. 提高系统可靠性:高可用集群通过将系统部署在多个节点上,从而减少了单点故障的风险。如果一个节点出现故障,集群中的其他节点仍然可以继续提供服务,从而提高了系统的整体可靠性。
  2. 实现无缝故障转移:当集群中的某个节点发生故障时,高可用集群能够自动将流量转移到其他正常运行的节点,实现无缝的故障转移。这有助于最大程度地减少服务中断时间,确保服务的持续性和稳定性。
  3. 负载均衡:高可用集群可以通过将流量平均分配到各个节点上,从而实现负载均衡。这有助于提高系统的性能和吞吐量,同时降低单个节点的负载压力。
  4. 简化维护和升级:在高可用集群中,可以在不影响服务的情况下对单个节点进行维护、升级或扩展。这样可以最大程度地减少对整个系统的影响,同时确保服务的连续性。
  5. 提供灾难恢复能力:在面对数据中心或区域性故障时,高可用集群可以通过在不同地理位置部署节点来提供灾难恢复能力。这有助于保护数据和服务,并最大程度地减少因灾难事件而造成的影响。

总的来说,高可用集群的作用在于提高系统的可靠性、稳定性和可用性,从而确保服务能够持续地对外提供,并在面对各种故障或挑战时保持稳定运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/623588.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FPGA 原理图细节--画引脚

BGA引脚表示 1.1 FPGA此引脚要正确和清晰,会在“Package Pin”中用到次物理接口 1.2, MCU 只用管对应的GPIO逻辑接口就可以了 标识Bank电平 标识出对应Bank的电平,在电路设计中可以清晰的知道对应的脚位输出电平。在"IO std"也方便的选择 Ea…

芯片设计重要工具—— IBM LSF 分布式高性能计算调度平台

IBM Spectrum LSF Suites 是面向分布式高性能计算 (HPC) 的工作负载管理平台和作业调度程序。基于 Terraform 的自动化现已可用,该功能可在 IBM Cloud 上为基于 IBM Spectrum LSF 的集群供应和配置资源。 借助我们针对任务关键型 HPC 环境的集成解决方案&#xff0…

常见的限流算法

本文已收录至我的个人网站:程序员波特,主要记录Java相关技术系列教程,共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源,让想要学习的你,不再迷茫。 天下武学出同源 正所谓天下武学殊途同归&#xff…

fgetc函数和fputc函数

目录 getchar和putchargetc和putcfgetc和fputc 橙色 getchar和putchar int getchar(void); // 从标准输入 stdin 获取一个字符(一个无符号字符)。这等同于 getc 带有 stdin 作为参数int putchar(int char); // 把参数 char 指定的字符(一个…

N5181A/安捷伦Agilent N5181A信号发生器

181/2461/8938产品概述: 规格(说明书):表示已校准的仪器在工作温度范围0-55C内存放至少2小时,除非另有说明,并经过45分钟预热期后的保证性能。的指标包括测量不确定度。除非另有说明,本文档中的…

【Python数据可视化】matplotlib之绘制高级图形:散点图、热力图、等值线图、极坐标图

文章传送门 Python 数据可视化matplotlib之绘制常用图形:折线图、柱状图(条形图)、饼图和直方图matplotlib之设置坐标:添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值matplotlib之增加图形内容&#x…

全自动洗衣机什么牌子好?内衣洗衣机便宜好用的牌子推荐

随着内衣洗衣机的流行,很多小伙伴在纠结该不该入手一款内衣洗衣机,专门来洗一些贴身衣物,答案是非常有必要的,因为我们现在市面上的大型洗衣机只能做清洁,无法对我们的贴身衣物进行一个高度除菌,而小小的内…

基于python的深度神经网络原理与实践

理论基础 什么是神经网络 我们知道深度学习是机器学习的一个分支,是一种以人工神经网络为架构,对数据进行表征学习的算法。而深度神经网络又是深度学习的一个分支,它在 wikipedia 上的解释如下: 深度神经网络(Deep N…

Vue中keep-alive缓存的详解(深度理解)

文章目录 一、Keep-alive 是什么二、使用场景三、原理分析四、思考题:缓存后如何获取数据beforeRouteEnteractived 参考文献 一、Keep-alive 是什么 keep-alive是vue中的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM ke…

Redis面试系列-03

1. 为什么 Redis 集群的最大槽数是 16384 个? 在redis节点发送心跳包时需要把所有的槽放到这个心跳包中,以便让节点知道当前集群信息,即1638416k,在发送心跳包时使用char进行bitmap压缩后是2k(2*8 (8bit)*1024(1k)16K…

五、程序流程结构(1)选择结构——switch语句

作用:执行多条件分支语句 语法: switch (表达式) {case 结果1:执行语句;break;case 结果2:执行语句;break;...default:执行语句;break; //前面代码均未执行,则执行default默认代码 } 1、switch语句给…

四搭建dockerhub私有仓库

搭建dockerhub私有仓库 很多场景下,我们需使用私有仓库管理Docker镜像。相比Docker Hub,私有仓库有以下优势: 节省带宽,对于私有仓库中已有的镜像,无需从Docker Hub下载,只需从私有仓库中下载即可&#x…

MySQL篇—通过Clone插件进行远程克隆数据(第三篇,总共三篇)

在介绍 Clone 最终篇之前,我们先简要回顾一下前面所讲的内容。在第一篇中,我们探讨了 Clone 的用途、使用的前提条件、存在的限制,以及它的备份原理。Clone 是一种用于复制和备份数据的工具,它能够快速高效地创建数据的精确副本。…

Spark原理——逻辑执行图

逻辑执行图 明确逻辑计划的边界 在 Action 调用之前,会生成一系列的RDD,这些RDD之间的关系,其实就是整个逻辑计划 val conf new SparkConf().setMaster("local[6]").setAppName("wordCount_source") val sc new SparkContext(conf)v…

JVM篇--Java内存区域高频面试题

java内存区域 1 Java 堆空间及 GC? 首先我们要知道java堆空间的产生过程: 即当通过java命令启动java进程的时候,就会为它分配内存,而分配内存的一部分就会用于创建堆空间,而当程序中创建对象的时候 就会从堆空间来分…

2024--Django平台开发-Redis集群(十一)

内容回顾 主从复制。 哨兵:实例启动了,哨兵节点没启动,Python通过redis-py连接报错。一定要确保实例节点和哨兵节点都启动了。 搭建集群用的是虚拟机的多台centos服务器,你在跟着学习的时候,一定要全部都是虚拟机&am…

5.矩阵分析

矩阵分析 文章目录 矩阵分析一、方阵范数1.1 矩阵范数1.2 与矩阵乘积相容的矩阵范数【定义】自相容范数 / 方阵范数 1.3 与向量范数相容的矩阵范数【定义】矩阵范数与向量范数相容【定理】任意自相容范数必存在与它相容的向量范数 二、算子范数2.1 方阵的算子范数【定理】由向量…

PVE虚拟机安装qemu guest agent

pve虚拟机安装guest agent,使web平台可以直接显示虚拟机的ip,方便管理。 一、虚拟机需开启Qemu代理 首先,虚拟机需开启Qemu代理,需要关闭虚拟机再启动虚拟机并安装agent。网上有些文章说要把网卡配置为virtio,经测试是…

可协作植物管理工具HortusFox

什么是 HortusFox ? HortusFox 是一个自托管的协作植物管理系统,您可以在自己的环境中使用它来管理所有的植物。您可以添加植物,并附带各种详细信息和照片,并将它们分配到环境中的位置。系统提供了一个仪表板,显示所有…

小程序系列--6.全局配置

一. 全局配置文件及常用的配置项 二、window 1. 小程序窗口的组成部分 2. 了解 window 节点常用的配置项 3. 设置导航栏的标题 4. 设置导航栏的背景色 5. 设置导航栏的标题颜色 6. 全局开启下拉刷新功能 7. 设置下拉刷新时窗口的背景色 8. 设置下拉刷新时 loading 的样…