【第六周】学习总结——分布式存储

发布于: 2020 年 07 月 13 日

分布式数据库

1、单一数据库

数据压力不大,可用性要求不高

2、读写分离

访问压力比较大

一主多从,主负责写,从负责读,降低读压力

主主复制:高可用性,只能向一个服务器写入

3、业务分库

数据分片前一定考虑先做业务分库,分的最彻底的情况是一个服务器就一张表。

4、数据分片

分片,加主从复制

当一个表数据量非常大,写压力非常大的时候,需要进行数据分片。

分布式数据库中间件,MyCat

节点伸缩:多schema

CAP原理

一致性(Consistency):每次读取的数据都应该是最新写入的数据,而不是过期数据。

可用性(Availability):非故障节点每次请求都应该返回正常状态(不能是错误或者超时)。

分区容错性(Partition Tolerance):当发生分区问题时,系统能继续履行职责。

对于一个分布式存储系统CAP是不同同时满足的,而分区失效一定会发生的。也就是说P是必须保证,而C 和A是要看场景进行选择。但并不是就一定要完全舍弃另一方,比如经常会使用的满足AP前提下的最终一致性方案(对用户使用最终一致)。

限定(在这个前提下去理解会清晰很多,否则范围错误的放大,对概念的理解都变得更复杂和困难)

  1. CAP针对相互连接且数据共享的多分区场景。

  2. CAP关注的粒度是数据,而不是系统。

NoSQL

1、Cassandra

2、HBase

LSM树

写入性能非常好,查询需要逐级查询

ACID和BASE

关系数据库遵循ACID事务,NoSQL一般使用BASE。

ACID:传统的事务机制

原子性(Atomicity):事务要么完成,要么取消

一致性(Consistency):只有合法的数据才能写入,数据库约束

隔离性(Isolation):多个事务执行,不相互影响

持久性(Durability):事务执行完成后,数据不会受程序运行状态影响

BASE

基本可用(Basically Availble)、软状态/柔性事务(Soft-state)、最终一致性(Eventual Consistency)

Doris海量KV引擎

Doris的一致性Hash和伸缩策略

Zookeeper分布式一致

分布式一致性(共识机制)算法Paxos

  • Proposer

  • Acceptor

  • Leaner

学习小结

分布式存储的理论和技术有一定深度和广度,需要好好学习,而且很重要。

用户头像

三尾鱼

关注

还未添加个人签名 2018.07.10 加入

还未添加个人简介

评论

发布
暂无评论
【第六周】学习总结——分布式存储