第六周总结

本周主要介绍了分布式数据库和NoSql数据库的相关知识。
大多数 NoSQL 无法实现真正符合 ACID 的事务,只能实现数据的最终一致性。

CAP 理论

对于一个分布式系统而言,网络失效一定会发生,也就是说,分区耐受性是必须要保证的,那么在可用性和一致性上就必须二选一。针对不同的使用场景,来决定实现AP还是CP。

BASE理论

基本可用(Basically Available)系统在出现不可预知故障时,允许损失部分可用性,如响应时间上的损失或功能上的损失。
Soft state(弱状态)软状态,指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时。
Eventually consistent(最终一致性)指系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态,因此最终一致性的本质是需要系统保证数据能够达到一致,而不需要实时保证系统数据的强一致性。

ZooKeeper

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是按照CP原则构建的。
Zookeeper是使用Paxos算法实现的,Paxos算法主要有三个角色,Proposer、Acceptor和Learner。
第一阶段:Prepare 阶段。Proposer 向Acceptors 发出Prepare 请求,Acceptors 针对收到的Prepare 请求进行Promise 承诺。
第二阶段:Accept 阶段。Proposer 收到多数Acceptors 承诺的Promise 后,向Acceptors 发出Propose 请求,Acceptors 针对收到的Propose 请求进行Accept 处理。
第三阶段:Learn 阶段。Proposer 在收到多数Acceptors 的Accept 之后,标志着本次Accept 成功,决议形成,将形成的决议发送给所有Learners。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 之前在实习的时候用到了Elasticsearch,看了看它内部的实现原理,发现ES自己实现了一套分布式一致性解决方...
    yufeiyang1995阅读 429评论 0 0
  • ZooKeeper 1 Zookeeper 数据模型 1.1 znode节点类型与特性 持久节点:该节点一旦创建为...
    小王的平凡生活_jerome阅读 829评论 0 0
  • 转载于https://zhuanlan.zhihu.com/p/31780743[https://zhuanlan...
    爱健身的兔子阅读 467评论 0 0
  • 提升网站的访问速度,持续的高并发,这是技术上的必然,也是一种科技的衍进方式。以下是系统设计的进化之路。 单点集中式...
    Sophie12138阅读 480评论 0 0
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,596评论 16 22