写点什么

6.1 分布式关系数据库 (上)

用户头像
张荣召
关注
发布于: 2020 年 11 月 01 日

MySQL 复制

1.主从复制

2.MySQL-一主多从复制


 优点:1.分摊负载

            2.专机专用

            3.便于冷备

            4.高可用(读高可用,写不能高可用--只有一台主服务器,不能写入从服务器)

  高可用是互联网应用追求的主要目标。所以应该保证写的高可用。

3.MySQL-主主复制


解析:两个主服务器。A 服务器的 Binlog 同步到 B 的 RelayLog,写入 B 服务器数据库;

                                B 服务器的 Binlog 同步到 A 的 RelayLog,写入 A 服务器数据库;

要点:同一时间,只能向一台服务器写入。如果同时写入,导致数据冲突(AB 同时对同一条数据进行修改)

优点:提高主服务器的高可用。

4.MySQL-主主失效恢复


MySQL 复制注意事项:

1.主主复制的两个数据库不能并发写入。

2.复制只是增加了数据的读并发处理能力,没有增加写并发能力和存储能力。

3.更新表结构会导致巨大的同步延迟(实践中,关闭表结构的自动同步,采用人工方式同步)。

  

问题: 如何提高写并发能力和存储能力?

方法:数据分片。


5.数据分片  

       10 亿条记录分摊存储在 100 台服务器上,每台存储 1000W 条记录。

       分片目标:

       分片特点:

       分片原理:

6.硬编码实现数据分片

缺点:1.代码要实现分片逻辑,对业务有侵入性。管理不方便。

7.映射表外部存储

优点:代码中不需要在硬编码分片逻辑。查数据表,找到数据对应的服务器,然后获取对应服务器的连接。读取数据。相对硬编码,管理和可维护性更好。

8.数据分片的挑战

       1.需要大量的额外代码,处理逻辑因此变得更加复杂。(分片代码,业务代码耦合)

       2.无法执行多分片的联合查询。(join 操作无法执行)

       3.无法使用数据库的事务。(事务日志如法使用)

       4.随着数据的增长,如何增加更多的服务器。(增加新服务器 B,B 是空的,怎么进行数据迁移)

       ===>生产环境中,硬编码+映射表外部存储,不常用。

       ===>解决方法:分布式数据库中间件。分布式数据库中间件如何设计?原理是什么?


用户头像

张荣召

关注

还未添加个人签名 2018.05.02 加入

还未添加个人简介

评论

发布
暂无评论
6.1分布式关系数据库(上)