我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL中如何选择高可用架构

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL中如何选择高可用架构

MySQL中如何选择高可用架构,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

一 、高可用架构

MySQL Replication

MySQL中如何选择高可用架构

经典的主从复制,需要多个步骤手动进行配置。例如,用户管理、备份恢复、配置复制......MySQL仅提供了核心功能,整体架构需要用户自己决定(大部分情况下需要定制)。在这种情况下,组织或者公司需要使用不同的技术组件,技术专家或DBA需要将大量的工作和时间投入到自动化处理。

MySQL InnoDB Cluster

MySQL中如何选择高可用架构

2016年,MySQL推出了MySQL InnoDB Cluster,InnoDB Cluster主要包括MySQL Group Replication(群组成员变化管理、网络分区控制、集群范围一致性......),MySQL Shell(强有力的接口,自动化整合全部的组件),MySQL Router(应用透明路由、负载均衡、自动应用故障转移......)以及MySQL Clone(自动化部署成员,完全整合至InnoDB Cluster)。

MySQL InnoDB Replica Set

MySQL中如何选择高可用架构

2020年,MySQL推出MySQL InnoDB Replica Set。该功能基于经典的主从复制,完全整合MySQL Shell和MySQL Router。

二、InnoDB Cluster和InnoDB Replica Set

上面简要介绍了MySQL高可用的过去和现在的解决方案,下面将详细地介绍InnoDB Cluster和InnoDB Replica Set。

MySQL InnoDB Cluster是MySQL的一体化产品解决方案,具有高可用性和可伸缩性的特点,组件包括MySQL Server、MySQL Shell、MySQL Router和MySQL Group Replication。它的目标是提供一个MySQL一体化产品,全部的组件统一开发,整合全部的组件,并进行全栈测试。此外,简单易用也是该产品的特色,使用一个统一的客户端MySQL Shell统一进行集群编排和管理。

MySQL Group Replication

MySQL Group Replication是分布式高可用MySQL数据库,具有容错、自动故障转移、多节点更新、自动成员管理、冲突检测/解决以及防止数据丢失功能。它是复制数据库状态机理论的实现,能够保证整体写入顺序,保证一致性。集群范围内最终一致,如果使用8.0.14之后的MySQL可以实现会话和全局范围的读写强一致性。MySQL 5.7版本将这个功能GA,并支持全部的MySQL平台,包括Linux、Windows、Solaris、macOS 、FreeBSD等。

MySQL Group Replication可以用于如下场景:

  •  一致性:数据零丢失(RPO=0)

        ○ 主要成员故障时,数据不会丢失。

        ○ 防止网络分区,通过大多数在线原则防止网络分区。

  •  高可用性:自动故障转移

       ○ 自动选取主要成员

       ○ 自动控制网络分区

  •  读取扩展:

       ○ 按需增加/删除节点

       ○ 使用流程控制处理延迟

       ○ 可配置一致性级别

           ◉ 最终一致

           ◉ 完整一致性

  •  主主环境:

       ○ 同时写入多个成员

          ◉ 组内顺序写入(XCOM,PAXOS理论的实现)

          ◉ 保证一致性

       ○ 写入性能良好

          ◉ 乐观锁(取件于工作负载)

MySQL Router

透明访问数据库的架构,在应用程序和后端的MySQL数据库之间提供透明的路由连接。

  •  透明客户端连接路由

       ○ 负责均衡

       ○ 应用程序连接故障转移

       ○ 配置简单

  •  无缝设计提供简单的HA客户端路由

       ○ 路由作为应用程序栈的一部分

  •  整合InnoDB Cluster和InnoDB Replica Set

  •  2个TCP端口用于主节点和非主节点通信

MySQL Shell

提供一个数据库管理接口,可以执行MySQL相关的全部任务。

  •  支持多种语言:JavaScript、Python、SQL

  •  可编写脚本

  •  支持文档存储和关系型模型

  •  公开完整的开发和管理API

  •  经典的MySQL协议和X协议

MySQL Shell简单易用,可以通过它快速搭建InnoDB Cluster。

创建集群

MySQL中如何选择高可用架构

配置实例

MySQL中如何选择高可用架构

添加实例

MySQL中如何选择高可用架构

启动MySQL Router

MySQL中如何选择高可用架构

检查集群状态

MySQL中如何选择高可用架构

MySQL中如何选择高可用架构

MySQL InnoDB Replica Set

  •  完全整合MySQL Router

  •  简单易用的MySQL Shell

  •  配置、增加、移除成员

  •  自动化部署成员(Clone)

  •  主从复制架构

       ○ 手动进行切换和故障转移

       ○ 异步读取扩展

       ○ 简单的主从架构

       ○ 没有硬件网络要求

           ◉ 提供主节点的可用性

InnoDB Replica Set可以通过克隆自动部署新成员,利用MySQL Shell自动配置用户和复制,手动配置、增加移除应用程序使用的服务器,MySQL Router或其他代理,并且能够整合MySQL Router的负载均衡能力。从而避免了以往配置主从复制时所需的繁琐步骤。

以往需要使用额外的监控工具在每台服务器上去检查拓扑状态,用户需要负责全部组件的所有配置,每一个设置都相当于定制化。使用InnoDB Replica Set可以通过MySQL Shell status()来查看拓扑状态,并且Shell会基于最佳实践配置服务器、路由和复制,以防止发生错误。

InnoDB Replica Set是一套标准的解决方案,由MySQL团队提供支持和质量保证,这个方案的优点是简单易用,初学者也可以快速掌握。

三、如何选择高可用架构

最后说明一下如何选择不同的高可用架构。

首先要明确业务的需求,高可用性越高意味着成本也越高。可以从以下几个方面去明确目标:

  •  恢复时间目标(RTO)

        服务从故障中恢复需要多长时间?

  •  恢复点目标(RPO)

        服务在故障中允许丢失的数据

  •  故障类型

       ○ 高可用:单一服务器故障,网络分区

       ○ 容灾:整体地域/网络故障

       ○ 人为错误:操作失误,故意破坏

  •  程度

       ○ 0

       ○ 秒

       ○ 分

       ○ 小时

       ○ ...

不同业务需求对应的架构

单一地域

  •  RTO=小时

  •  RPO=分

  •  一台MySQL服务器

       ○ 备份

       ○ 同步日志

MySQL中如何选择高可用架构

单一地域

  •  RTO=小时

  •  RPO=少于1秒

  •  一台MySQL服务器

       ○ 频繁备份

       ○ 持续拉取二进制日志

MySQL中如何选择高可用架构

单一地域

  •  RTO=数分

  •  RPO=少于1秒

  •  MySQL InnoDB Replica Set

MySQL中如何选择高可用架构

单一地域

  •  RTO=数秒

  •  RPO=0

  •  MySQL InnoDB Cluster

MySQL中如何选择高可用架构

多地域

  •  地域故障

  •  RTO=数分

  •  RPO=数秒

  •  MySQL InnoDB Cluster

       ○  配合使用异步复制

MySQL中如何选择高可用架构

多地域

  •  地域故障

  •  RTO=数分

  •  RPO=0

  •  MySQL InnoDB Cluster 跨地域部署

       ○ 两个地域的一致性级别设置为AFTER,或者三个地域,每个地域具有1-2个成员。

       ○ 写入的吞吐量受到影响,写入事务需要保证事务同步。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL中如何选择高可用架构

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL INSERT锁与数据库高可用架构的选择

在MySQL中,INSERT锁是一种排他锁,用于阻止其他事务在插入数据时对同一行数据进行修改。这种锁在插入数据时会自动被获取,确保数据的一致性和完整性。当涉及到数据库高可用架构的选择时,应该考虑以下几点:主从复制:主从复制是最常见的高可用
MySQL INSERT锁与数据库高可用架构的选择
2024-08-14

Mysql 高可用架构

MMM方案 即使主从复制中间出现异常情况,MMM记录了详细同步日志,重启服务后会从错误的地方继续同步,不会丢失数据; Mysql经典架构方案 此方案做了读写分离,写入是通过访问映射VIP地址,写入到主服务器,再通过vip实现主从同步保持数据一致;LVS+k
Mysql 高可用架构
2020-03-29

vps架构如何选择

选择VPS架构主要取决于以下几个因素:1. 需求:首先需要明确自己的需求,包括希望实现的功能、所需的计算资源和存储容量等等。根据需求来选择VPS架构,可以满足自己的需求,避免资源浪费。2. 价格:VPS架构的价格因供应商和配置而异。可以根据
2023-08-11

ASP.NET中如何选择应用系统架构

本篇文章为大家展示了ASP.NET中如何选择应用系统架构,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。架构的选择架构的选择与应用程序的类型有关。这里说的是ASP.NET应用,那么Client-Ser
2023-06-17

MySQL高可用架构之MHA

一、MHA介绍  MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主
MySQL高可用架构之MHA
2019-01-11

MySQL高可用架构设计

MySQL高可用架构设计旨在确保数据库在遭遇故障或维护时仍能保持服务的连续性和数据的完整性。以下是一些常见的高可用架构设计及其特点:MySQL Replication异步复制:主服务器在写入数据后即认为操作完成,而不等待从服务器确认。半
MySQL高可用架构设计
2024-10-20

MySQL在Linux的高可用架构

MySQL在Linux的高可用架构通常采用主从复制和集群方案来实现。以下是一些常见的高可用架构方案:主从复制(Master-Slave Replication):在主从复制架构中,一个MySQL服务器(主服务器)负责写操作和部分读操作,而其
MySQL在Linux的高可用架构
2024-08-16

如何部署k8s高可用架构

本篇内容主要讲解“如何部署k8s高可用架构”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何部署k8s高可用架构”吧!概述地址sealos, 让kubernetes高可用不再需要keepaliv
2023-06-27

Redis高可用架构如何搭建

今天小编给大家分享一下Redis高可用架构如何搭建的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。持久化机制在理解集群架构前,
2022-12-05

如何选择适合的高效固定定位架构

如何选择适合的快速固定定位结构,需要具体代码示例在现代软件开发中,快速固定定位是一个非常重要的功能。无论是网页设计、移动应用开发还是嵌入式系统,我们都需要能够准确地定位到需要操作的元素或对象。一个好的固定定位结构不仅能提高开发效率,还能改善
如何选择适合的高效固定定位架构
2023-12-28

编程热搜

目录