架构师训练营第六周总结

发布于: 2020 年 07 月 16 日

1. 分布式数据库与NoSql

1.1分片

1.1.1 分片常用的方式

  • 硬编码分片

  • 映射表外部存储

  • 分布式数据库中间件( Amoeba/Cobar/mycat)

其中硬编码分片和映射表外部存储 这2种方式在却在一定的缺陷,在实际应用中不常用,实际应用中常用分布式数据库中间件。

1.1.2 分布式数据库中间件集群扩容策略

开始就要设计分片的规模,根据数据的最大极限,分多少片,设计好数据库的schema。

1.2 数据库部署方案

  • 单一服务与单一数据库

  • 主从复制

  • 两个Web及两个数据库

  • 综合部署

1.3 NoSQL

1.3.1 CAP

  • Consistency

  • Availability

  • Partition tolerance

1.3.2 CAP原理与数据一致性冲突方式

  • 最终一致性

  • 客户端解决冲突

  • 客户端解决冲突

  • 投票解决冲突

1.3.3 NoSQL数据库

  • Cassandra

  • HBase

1.4 ACID与BASE

1.4.1 ACID

  • 原子性(Atomicity) :事务要么全部完成,要么全部取消。如果事务 崩溃,状态回到事务之前(事务回滚)

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

  • 持久性(Durability) :一旦事务提交,不管发生什么(崩溃或者出错),数据要 保存在数据库中。

  • 一致性 (Consistency) :只有合法的数据 (依照关系约束和函数约束)才能写入数据库。

1.4.2 BASE

  • 基本可用(Basically Available)系统在出现不可预知故障时,允许损失部分可用性,如响应时间。上的损失或功能上的损失

  • Softstate(弱状态)软状态,指允许系统中的二数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时

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

2.分布式一致性与zookeeper

2.1 分布式一致性算法Paxos

  • Proposer

  • Acceptor

  • Learner

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

关注

还未添加个人签名 2018.04.25 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第六周总结