极客时间架构师训练营 - week6 - 作业 2

发布于: 2020 年 07 月 15 日

根据当周学习情况,完成一篇学习总结

本周内容续上周,讲解的内容为分布式数据库、NoSQL与分布式一致ZooKeeper等内容。第一次课,李老师讲解了分布式哈希算法的实现,分布式数据库(分表分库)的架构演进,及NoSQL的相关概念。NoSQL与以关系型数据库为主要应用不同的点在于,其遵循着CAP的规律。第二次课,李老师重点解释了业界主要的几款NoSQL中间件架构,包括Cassandra,HBase,ZooKeeper等。

CAP理论的解释如下:

在一个分布式系统(指互相连接并共享数据的节点的集合)中,当涉及读写操作时,只能保证一致性(Consistence)、可用性(Availability)、分区耐受性(Partition Tolerance)三者中的两个,另外一个必须被牺牲。

其中的一致性是指,每次读取到的数据要么失败,要么是最新版本的,而不是过期的、历史版本的数据;可用性即系统的每次请求都要求得到一个响应,允许响应的数据不是最新的版本,不能影响系统用户的使用。分区耐受性,是指即便是因为网络波动等原因,部分服务器节点之间消息丢失或延迟,系统依然要能运转。而实际情况下,系统的分区耐受性必须要得到保证,所以CAP原理就变成,分布式系统在满足分区耐受性的情况下,可用性与一致性无法同时满足。关系型数据库的特点是ACID,即原子性、隔离性、持久性与一致性。而NoSQL的特点是BASE,即基本可用,软状态与最终一致性。在实现最终一致性的时候,不同的中间件采用不同的方案,如Cassandra采用的处理方案是,通过投票来解决冲突,实现最终的一致性;ZooKeeper则是通过类Paxos算法,解决分布式系统脑裂的问题。

本周内容,个人感觉,对于目前的我而言是有点超前。我们做的业务系统目前用户数还不够多,还没到需要分库分表的时候,一个MySQL数据库就能满足需求。希望公司能尽快成长到需要分库分表的那一天。而NoSQL相关组件,目前我们主要用到的是搜索引擎ElasticSearch,Solr,HBase等,ZooKeeper此前仅仅是配置的时候用到的,原理通过这次课有了深入的了解,有时间还是要自己去鉴赏一下源码。

以上。

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

jjn0703

关注

Java工程师/终身学习者 2018.03.26 加入

USTC硕士/健身健美爱好者/Java工程师.

评论 (1 条评论)

发布
用户头像
请添加“极客大学架构师训练营”标签,方便分类
2020 年 07 月 15 日 10:56
回复
好的
2020 年 07 月 15 日 19:18
回复
没有更多了
极客时间架构师训练营 - week6 - 作业 2