极客时间架构师训练营 - week6 - 作业 2
根据当周学习情况,完成一篇学习总结
本周内容续上周,讲解的内容为分布式数据库、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此前仅仅是配置的时候用到的,原理通过这次课有了深入的了解,有时间还是要自己去鉴赏一下源码。
以上。
版权声明: 本文为 InfoQ 作者【jjn0703】的原创文章。
原文链接:【http://xie.infoq.cn/article/b9003d2a7e9d61c55ebafb8c1】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论 (2 条评论)