每日一Go·MySQL-50、MySQL 集群架构选型17认证网

正规官方授权
更专业・更权威

每日一Go·MySQL-50、MySQL 集群架构选型

转自:Codee君。作者:Coding君

一、MySQL 架构演进路线

互联网系统通常会经历下面的阶段:

单机 MySQL     ↓主从复制     ↓读写分离     ↓分库分表     ↓分布式数据库

每一步都是为了解决新的瓶颈。

二、阶段一:单机 MySQL

最简单架构:

   应用    │ MySQL

特点:

部署简单成本低

适用场景:

小型系统早期创业项目数据 < 1000万

问题:

单点故障性能有限无法扩展

三、阶段二:主从复制架构

为了解决:

高可用

引入:

  主从复制

架构:

        应用         │       主库         │      binlog         │       从库

优点:

数据备份读压力分担

缺点:写压力仍然集中

四、阶段三:读写分离

当系统访问量增大:读请求远多于写请求

通常比例:

读 : 写 = 10 : 1

于是引入:

读写分离

架构:

           应用            │        Proxy            │      ┌─────┴─────┐      │           │    主库        从库      │           │     从库        从库

读请求:从库

写请求:主库

常用组件:

ProxySQLMyCatShardingSphere

优点:

读能力扩展

问题:

写压力仍然集中

五、阶段四:分库分表

当单库写入压力过大时:

主库写入瓶颈

需要:

  分库分表

架构:

               应用                │            分片路由                │     ┌──────────┼──────────┐     │          │          │   shard1     shard2     shard3     │          │          │   MySQL      MySQL      MySQL

每个库只存一部分数据。

例如:

order_0order_1order_2order_3

分片规则:

order_id % 4

优点:

写能力扩展存储扩展

缺点:

架构复杂跨库查询困难

六、阶段五:分布式数据库

当系统规模达到:

百亿数据百万 QPS

传统 MySQL 架构会变得非常复杂。

这时候可能选择:

分布式数据库

例如:

TiDBCockroachDBOceanBase

架构示意:

          应用           │      SQL Layer           │      分布式存储           │      多节点集群

优点:

自动分片自动扩容高可用

缺点:

成本高学习成本高

七、常见 MySQL 集群方案

目前主流方案有:

方案
特点 
主从复制
最基础 
读写分离
读性能提升 
分库分表
写性能提升  
Group Replication 
官方 HA
Vitess
分布式 MySQL
TiDB
NewSQL 数据库

八、Vitess 架构(大规模 MySQL)

Vitess 是 YouTube 开源的:

MySQL 分布式中间件

架构:

           应用            │        VTGate            │       ┌────┼────┐       │         │     shard1    shard2       │         │     MySQL     MySQL

特点:

自动分片SQL 路由水平扩展

很多公司在用:

YouTubeSlackShopify

九、TiDB 架构

TiDB 是:

分布式 HTAP 数据库

架构:

           应用            │           TiDB            │         ┌──┴──┐         │ PD  │         └──┬──┘            │         TiKV 集群

特点:

自动分片强一致在线扩容

适合:

大数据量复杂查询

十、架构选型建议

不同规模系统建议:

– 初创公司

单机 MySQL

   – 中小系统

主从复制+读写分离

   – 大型互联网系统

分库分表+Proxy

   – 超大型系统

VitessTiDBOceanBase

十一、互联网典型架构

典型互联网 MySQL 架构:

                应用                 │            API Gateway                 │             ProxySQL                 │        ┌────────┼────────┐        │        │        │     shard1   shard2   shard3        │        │        │      主从      主从      主从

特点:

读写分离分库分表高可用

十二、架构选型核心原则

数据库架构选型必须考虑:

数据规模并发量团队能力运维成本

核心原则:

简单优先逐步演进不要过度设计

十三、今日总结

MySQL 集群架构演进:

单机→ 主从复制→ 读写分离→ 分库分表→ 分布式数据库

架构目标:

高可用高性能高扩展

常见方案:

MySQL + ProxySQLVitessTiDB

想了解更多干货,可通过下方扫码关注

可扫码添加上智启元官方客服微信👇

未经允许不得转载:17认证网 » 每日一Go·MySQL-50、MySQL 集群架构选型
分享到:0

评论已关闭。

400-663-6632
咨询老师
咨询老师
咨询老师