数据库分片

发布于: 2020 年 07 月 09 日

1、数据分片

数据库IO特别大时,将一张表的数据分片到多个数据库服务器上,降低数据库服务器压力

分片目标

分片特点

2、实现方式

2-1、硬编码实现数据分片

2-2、映射表外部存储

可以建立多个映射表,用多个方式进行映射,较为灵活;

在实践中不多见,原因:

1、一次查询变成两次查询;

2、对应用程序增加复杂性,带来数据不一致性;

3、分布式数据库中间件

由分布式数据库中间件,进行路由选择

原理:

1、配置路由规则;

2、

Cobar系统组件模型

4、当数据库服务器增加时,应该如何处理?

先作业务分片

再对客户

5、数据库部署方案

2、NoSQL

2-1、CAP原理

1、一致性Consistency

一致性是说,每次读取的数据都应该是最近写入的数据或者返回一个错误(Every read receives the most recent write or an error), 而不是过期数据,也就是数据是一致的;

操作是不保证的,但是数据一定是最新的

2、可用性Availability

不保证数据是最新的,但是操作一定是对的

3、分区忍受性

4、CAP原理

当网络分区失效发生的时候,我们要么取消操作,这样数据就是一致的,但是系统却不可用;

要么我们继续写入数据,但是数据的一致性就等不到保证;

满足分区耐受性情况下,可用性和一致性无法同时满足

两个数据库同时写,可用性降低;

2-2、CAP原理与数据一致性冲突

2-3、最终一致性

完全高可用的系统代价非常大;

2-4、最终一致性

2-4-1、最终一致性写冲突

2-4-2、客户端冲突解决

2-5、投票解决冲突(Cassandra)

这个是不是双写或者叫三写?同时写入多个数据源?

降低了可用性;

只有一个节点成功,写入数据失败;

Cassandra分布式架构

2-6、HBase架构

HBase不需要选择HRegionServer,通过HMaster询问选择

Zookeeper选择一个Master,当Master宕机,Zookeeper重新选举;

Zookeeper解决一致性

脑裂

服务器宕机数据不会丢失

可用性:一个Key只会由一个HRegionServer保证读写;

HBase可用性较差,当一个HRegionServer宕机后,宕机Server负责的Key,需要重新分配给其他Server;

1、doris

发布于: 2020 年 07 月 09 日 阅读数: 14
用户头像

Albert

关注

还未添加个人签名 2018.08.31 加入

还未添加个人简介

评论

发布
暂无评论
数据库分片