想学精MySQL,得先捋一捋高可用架构

📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️

文章目录

  • 前言
    • 1.主从复制
    • 2.读写分离及负载均衡
    • 3.MHA架构
    • 4.多源复制
    • 5.MGR架构
    • 6.双主+Keepalived
    • 7.PXC架构
    • 8. Orchestrator+VIP架构

前言

本文对MySQL的高可用架构做了详细的阐述,均来自真实的企业生产环境

1.主从复制

MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的 二进制日志 功能。就是一台或多台MySQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制,然后再解析日志并应用到自身,最终实现 从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。

MySQL 主从复制的优点主要包括以下3个方面:
(1)如果主库出现问题,可以快速切换到从库提供服务;
(2)可以在从库上执行查询操作,降低主库的访问压力;
(3)可以在从库上执行备份,以避免备份期间影响主库的服务

2.读写分离及负载均衡

MySQL Router 的主要用途是读写分离,主主故障自动切换,负载均衡,连接池等。
MySQL 强烈建议使用 Router 8 与 MySQL Server8和5.7一起使用,MySQL Router 是 MySQL 官方提供的一个轻量级中间件,可以在应用程序与 MySQL 服务器之间提供透明的路由方式。主要用以解决 MySQL 主从库集群的高可用、负载均衡、易扩展等问题

1.实现了主从读写分离
2.读从库一定程度上起到了负载均衡的作用
3.可以当作连接池
4.主主架构中,主数据库发生故障后,主从 MySQL 服务器自动发生切换
5.多从服务器负载读时,其中一台从服务器 DOWN 机,不影响业务访问

3.MHA架构

MHA(Master High Availability Manager and tools for MySQL)目前在MySQL高可用方面是一个相对成熟的解决方案,它是由youshimaton采用Perl语言编写的一个脚本管理工具。目前MHA主要支持一主多从的架构,要搭建MHA,要求一个复制集群必须最少有3台数据库服务器,一主二从,即一台充当Master,一台充当备用Master,另一台充当从库。

MHA由两部分组成:MHA Manager(管理节点)和MHA Node(数据库节点),
MHA Manager 可以单独部署在一台独立的机器上管理多个 master-slave 集群,
也可以部署在一台 slave 节点上。MHA Node 运行在每台 MySQL 服务器上,
MHA Manager 会定时探测集群中的 master 节点,
当 master 出现故障时,它可以自动将最新数据的 slave 提升为新的 master,
然后将所有其他的 slave 重新指向新的 master。
整个故障转移过程对应用程序完全透明

4.多源复制

所谓多源复制(Multi-source Replication),就是多台主库的数据同步到一台从库服务器上,从库创建通往每个主库的管道,从Mysql5.7版本开始支持多主一从的复制方式

多源复制的应用场景
1.各个主数据库的数据汇总到统一的数据库中
2.在从数据库对各个主数据库的数据进行集中备份
在部署多主一从之前,我们先了解下多源复制的好处:
(1)可以集中备份,在从库上备份,不会影响线上的数据正常运行;
(2)节约购买从库服务器的成本,只需要一个从库服务器即可;
(3)数据汇总在一起,方便后期做数据统计,可用于数仓;
(4)减轻DBA维护工作量,整合数据资源;

5.MGR架构

MySQL Group Replication(简称MGR)是一款高可用与高扩展的解决方案,
它提供了高可用、高扩展、高可靠的MySQL集群服务。既可以很好的保证数据一致性又可以自动切换,具备故障检查功能、支持多节点写入,以插件形式提供,实现了分布式下数据的最终一致性

(1)强一致性
基于原生复制及paxos协议的组复制技术,
并以插件方式提供,提供一致性数据安全。
(2)高容错性
只要不是大多数节点环境坏掉就可以继续工作,
有自动检查机制,当不同节点产生资源争用冲突时,
不会出现错误,按照先到者优先原则进行处理,并内置自动化脑裂防护机制。
(3)高扩展性
节点的新增和移除都是自动的,新节点加入后,
会自动从其他节点上同步状态,直到新节点和其他节点保持一致,
如果某节点被移除了,其他节点自动更新组信息,自动维护新的组信息。
(4)高灵活性
有单主模式和多主模式,单主模式下会自动选主,
所有的更新操作都是在主上进行;多主模式下,所有server都可以同时处理更新操作。

6.双主+Keepalived

一般中小型公司都使用这种架构,搭建比较方便简单;可以采用主从或者主主模式,在 master 节点发生故障后,利用keepalived 高可用机制实现快速切换到 slave 节点。原来的从库变成新的主库

keepalived主要有三个模块,分别是core、check和vrrp。
core模块为keepalived的核心,
负责主进程的启动、维护以及全局配置文件的加载和解析。
check负责健康检查,包括常见的各种检查方式。
vrrp模块是来实现VRRP协议的

7.PXC架构

PXC 是一套 MySQL 高可用集群解决方案,与传统的基于主从复制模式的集群架构相比 PXC 最突出特点就是解决了诟病已久的数据复制延迟问题,基本上可以达到实时同步

①实现 mysql 数据库集群架构的高可用性和数据的强一致性。
②完成了真正的多节点读写的集群方案。
③改善了传统意义上的主从复制延迟问题,基本上达到了实时同步。
④新加入的节点可以自动部署,无须提供手动备份,维护起来很方便。
⑤由于是多节点写入,所以数据库故障切换很容易。

8. Orchestrator+VIP架构

Orchestrator是最近非常流行的MySQL复制管理工具,相比较于MHA等常用管理工具,其支持高可用部署,并对故障进行一个完整的探测分析后才会做相应的故障转移,探测更精准、全面

下图中:Sqlite/MySQL,是Orchestrator的后端存储数据库
(存储监控的mysql复制实例的相关状态信息),可以选择MySQL,也可以选择SQLite。
/etc/orchestrator.conf.json是配置文件,Orchestrator启动时读取。
下面部分是监控的MySQL的实例,以下是搭建的一主两从。
当然,实际上Orchestrator可以监控成百上千个MySQL复制集群

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Web漏洞分析-文件解析及上传(中)

随着互联网的迅速发展,网络安全问题变得日益复杂,而文件解析及上传漏洞成为攻击者们频繁攻击的热点之一。本文将深入研究文件解析及上传漏洞,通过对文件上传、Web容器IIS、命令执行、Nginx文件解析漏洞以及公猫任意文件上传等方面的细致分析&…

JavaScript API: IntersectionObserver

简介 IntersectionObserver 是一个 JavaScript API,用于监测一个元素与其父元素或视窗的交叉状态。它可以用来判断一个元素是否可见或者在视窗中的位置是否发生变化。 使用 IntersectionObserver,你可以注册一个回调函数,当被观察的元素进入…

ChatGPT生成的docx文档压缩Python代码

对DOCX文件中的图片进行缩小处理 这份Python脚本旨在处理给定的DOCX(Word文档)文件中的图片,将其按照指定的比例进行缩小,并生成一个新的压缩版DOCX文件,其中包含经过缩小处理的图片。 代码功能概览: 导入…

.NET如何调用Web Service服务?

我们知道,现在用Web Service提供对外接口的项目其实很少了,现在大部分应用都是b/s端的了,WebApi的优势自然而然就体现出来了,可自定义请求头部信息、可对数据进行缓存、使用json字符串让开发更加灵活。那么Web Service是不是就无用…

高校刮起元宇宙风!3DCAT实时云渲染助力川轻化元校园建设

元宇宙,是一个虚拟的网络世界,它与现实世界相互连接,为人们提供了一个身临其境的数字体验。元宇宙的概念并不新鲜,早在上个世纪就有科幻作家和电影导演对它进行了想象和创造。但是,随着科技的发展,特别是5G…

2023最新大模型实验室解决方案

人工智能是引领未来的新兴战略性技术,是驱动新一轮科技革命和产业变革的重要力量。近年来,人工智能相关技术持续演进,产业化和商业化进程不断提速,正在加快与千行百业深度融合。 大模型实验室架构图 大模型实验室建设内容 一、课…

编程应用实际场景:台球厅怎么样用电脑给客人计时,台球计时收费系统操作教程

一、前言 准确控制顾客在店内游玩的时间,从而控制店内的各项成本,并提升店内的客流量。在顾客享受计时项目的时候,可以同时添加其他食物消费,并将单据合并统一结账。软件中的会员功能可以为客户办理会员可以使用灯控器控灯&#…

GPT-4V 在保险行业的应用

在科技的进步中,人工智能与大数据技术的结合产生了巨大的能量,推动了各行各业的创新与变革。OpenAI,作为全球领先的人工智能研发机构,在今年的9月25日,以一种崭新的方式,升级了其旗下的GPT-4模型。这次的升…

程序员必备的十种排序算法

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…

记录 | Google gtest安装

1、下载源码 git clone https://github.com/google/googletest2、源码编译 cd googletestcmake CMaakeLists.txtmake -j32编译成功后会在 googletest/lib 下生成 libgtest.a、libgtest_main.a、libgmock.a、libgmock_main.a 四个静态库。 把生成的静态库和头加入到系统环境…

提升测试工具开发的思考

本文针对测试部效率提升测试工具开发、管理、维护暴露出来的问题的一些思考以及一些个人改进观点。 写在前面 本文提到的效率提升测试工具不是指的部门中固有的自动化测试工具,这里提到的测试工具统一指测试人员在工作之余自主开发用于期望替代重复、繁琐、耗时的手…

Leetcode—709.转换成小写字母【简单】

2023每日刷题&#xff08;五十八&#xff09; Leetcode—709.转换成小写字母 实现代码 char* toLowerCase(char* s) {int len strlen(s);for(int i 0; i < len; i) {if(s[i] > A && s[i] < Z) {s[i] tolower(s[i]);}}return s; }运行结果 之后我会持续更…

竞赛保研 python 机器视觉 车牌识别 - opencv 深度学习 机器学习

1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于python 机器视觉 的车牌识别系统 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;3分 &#x1f9ff; 更多资…

如何正确选择打造自己的私域流量知识付费平台,我有才知识付费saas平台告诉你!

在当今数字化时代&#xff0c;私域流量知识付费平台已经成为企业和个人获取收益、扩大影响力的重要渠道。但是&#xff0c;如何正确选择并打造一个属于自己的私域流量知识付费平台呢&#xff1f;我有才知识付费saas平台为你提供一站式解决方案&#xff01; 一、功能全面&#…

【个人经验】Overleaf 在 two-column 格式中 插入图片 插入代码

一、在 two-column 格式中插入图片的方法 1.1 将图片上传至image文件夹 1.2 起始位置处导入包&#xff0c;并将图片上传至image文件夹 % 新增&#xff1a;为导入图片 \usepackage{graphicx} %导入包 \graphicspath{ {image/} } %image为文件夹名&#xff0c;可以在左侧自己…

MetaAI发布Seamless:两秒内实现跨语言同声传译

在当今日益互联的世界中&#xff0c;语言差异常常成为沟通的障碍。MetaAI最新发布的语音翻译大模型Seamless&#xff0c;正是为打破这一障碍而生。Seamless不仅提供流畅、高效的多语言翻译功能&#xff0c;更在保留说话人韵律和风格方面取得突破&#xff0c;是AI同声传译领域的…

harmonyos预览功能报错:[webpack-cli] SyntaxError: Unexpected end of JSON input

harmonyos预览功能报错 在使用DevEco Studio写页面&#xff0c;进行预览的时候报错&#xff1a; [Compile Result] [webpack-cli] SyntaxError: Unexpected end of JSON input [Compile Result] at JSON.parse (<anonymous>) [Compile Result] at updateCached…

CH03_生成实例

Singleton模式 单例模式&#xff08;Singleton&#xff09;&#xff0c;保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。 类图 说明 Singleton 在Singleton模式中&#xff0c;只有Singleton这一个角色。Singleton角色中有一个返回唯一实例的static方法。该…

使用Visual Studio(VS)创建空项目的Win32桌面应用程序【main函数入口变WinMain】

前言 在Visual Studio中直接新建Windows桌面应用程序会有很多多余的代码生成&#xff0c;本文将提供从空项目创建Win32项目的方法&#xff0c;解决新建空项目直接使用WinMain代码编译报错的问题 例如&#xff1a;LNK2019 &#xff1a;无法解析的外部符号 参考博客&#xff1…

kafka 详细介绍

目录 前言 分布式架构&#xff1a; 消息发布-订阅模型&#xff1a; 持久性存储&#xff1a; 分区和副本&#xff1a; 水平扩展&#xff1a; 高性能&#xff1a; 生态系统&#xff1a; 我的其他博客 前言 Kafka 是由 Apache 软件基金会开发的一种开源流处理平台&#xf…