写点什么

Week06 学习心得

用户头像
关注
发布于: 2020 年 07 月 15 日

数据分片

1)定义:数据由分片成各个片段数据,各个片段分配到不同的服务器上。

2)架构:Amoeba/Cobar架构

3)面临的挑战

  • 处理逻辑复杂,需要大量额外代码

  • 无法执行多分片联合查询

  • 无法使用数据库事务

  • 随着数据增长,如何增加更多服务器

NoSQL

  1. CAP原理

  • C - Consistency 一致性

每次读取的数据都应该是最近写入的数据或返回一个错误,而不是过期数据,即数据是一致的。

  • A - Availability 可用性

系统需要一直都是可正常使用的,不会引起调用者的异常,但并不保证响应的数据是最新的。

  • P - Partition tolerance 分区耐受性

即使因为网络原因,部分服务器节点之间消息丢失或延迟了,系统依然应该是可操作的。

  1. ACID

  • A - Atomicity 原子性

事务要么全部完成,要么全部取消。如果事务崩溃,需要事务回滚。

  • C - Consistency 一致性

只有合法的数据(依照关系约束和函数约束)才能写入数据库。

  • I - Isolation 隔离性

如果2个事务T1和T2同时运行,最终结果是相同的,不管谁先结束,隔离性主要依靠锁实现。

  • D - Durability 持久性

一旦事务提交,不管发生什么,数据都要保存在数据库中。

  1. BASE

  • BA - Basically Available 基本可用

系统在出现不可预知故障时,允许损失部分可用性。

  • S - Soft state 弱状态

允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。

  • E - Eventually consistent 最终一致性

系统中所有的数据副本在经过一段时间的同步后,最终能够达到一个一致的状态,因此最终一致性的本质是需要系统保证数据能够达到一致,而不是需要适时保证数据的强一致性。

分布式一致ZooKeeper

  1. 分布式系统脑裂

定义:在分布式系统中,不同服务器获得了相互冲突的数据或执行指令,导致整个集群陷入混乱,数据损坏。

  1. 分布式一致性算法Paxos

通过该算法解决在常见的主主备份场景,如何选择一个主服务器为写服务器的问题



用户头像

关注

还未添加个人签名 2018.04.17 加入

还未添加个人简介

评论

发布
暂无评论
Week06 学习心得