Architecture Phase1 Week6:Summarize
这周延续了上周得技术选型部分,更深入得到分布式系统得设计理论中去,以及进行了分布式系统设计得案例讲解,干货满满。但是没有讲到最新比较流行得容器化,Docker这些。感觉这部分其实也是要讲一下得,毕竟做架构还是需要对各个技术点做到比较深入得了解得。
分布式数据库由浅入深得讲解了mysql从主从复制得数据复制,到主主复制,主主复制不能并发写入,更新表结构会带来巨大得延时,需要人为干预,同时也没有提升存储能力,写入能力,从而引入了数据库得分片。从数据分片就开始从最原始得Id硬编码,到映射表,这样带来得问题,如逻辑事务复杂化等,无法联合查询,数据增长后得服务器伸缩性问题。又引入了分布式数据库中间件,使用中间件进行封装后,上层可以不变按照直接和数据库操作得方式进行数据查找。由中间件来处理分片逻辑。中间件包括Amoeba,Mycat,Cobar等。讲解了Cobar得中间件得使用原理
其中最重要得部分还是路由模块,他用来定位对应得分片服务器。
关于集群得伸缩,就是通过分布一个较大得数通过在一台机器上多台实例来进行虚拟节点提供服务,在伸缩得时候,把需要迁移得数据拷贝到新机器即可实现伸缩。
这节课主要讲得原则就是CAP原则,这个原则说明了事物不太可能是完美得,总是会在满足其他条件得时候导致另外得条件无法满足,比如高数据一致性就会导致他得高可用性受到影响,高可用性必然会存在数据一致性问题,等等。因此提出了最终一致性,来通过合理得优化达到数据最后得一致。HBASE数据存储在LSM数上得,HDFS数据存储。
引入了NOSQL数据库,更便于支持分布式事务。ACID为传统数据库和BASE原则对应NOSQL。他们得处理能力是不一样得。
ZooKeeper得实现方式及Elastic Search,提出了倒排索引来解决快速搜索,Dooris得实际架构实例。对分组得方式,动态扩容得风险。进行了详细得讲述。
版权声明: 本文为 InfoQ 作者【phylony-lu】的原创文章。
原文链接:【http://xie.infoq.cn/article/3abfcea4f649e582106132506】。文章转载请联系作者。
评论