rooobot / architecture-training

Architecture training camp homework
0 stars 2 forks source link

架构师训练营-第六周练习:总结 #15

Open rooobot opened 4 years ago

rooobot commented 4 years ago

本周课程的主要内容如下:

以上为本周课程的内容纲要。

以下为我个人对本周课程的总结:

本周课程首先是接着上周课程的内容进行了讲解,也就是关于数据分片的知识。其实,数据的分片从架构哲学上来看,和架构拆分也是对齐的,什么意思呢?通俗的说,数据分片也就是对数据进行拆分,通常架构上的拆分我们一般是垂直拆分和水平拆分,数据拆分也一样。

数据的垂直拆分就是我们通常说的分库,将不同的业务数据拆分到不同的数据库;

数据的水平拆分就是我们通常说的分表,将一张大表拆分成多张小表,对于关系数据库,单表的数据存储量是有上限的。

这两种拆分最麻烦的就是水平拆分了,一张表拆成多张表会带来很多的问题,比如联合查询、事务,以及本次拆分不够用之后如何保证有效的进行下一次拆分?这里又涉及到一个分表规划的问题了。等等等等,这里面其中有很多细节的东西需要考虑的。但可惜,老师对这些我个人认为最关键的信息没有分享一些实践中的经验,光是分表策略的设计就很考究个人的能力。

老师提到了CobarMyCat数据库中间件,也没有给出一些对比,以及实践经验的总结。就像老师说的:有问题才好,就怕没有问题。如果只是提一提这些中间件的名字,我想没有几个人不知道的吧,还有ShardingSphere这个当当当初开源出来的,现在已经是Apache的开源项目了,可以说是现在比较主流的数据库中间件了,但是课程上提都没提。

接着就是NoSQL了,老师讲了CAP理论,然后简单的讲了一下CassandraHbase,基本上也是蜻蜓点水。NewSQL这些就更没提了。

最后讲了一下ZooKeeper,也只是基本的讲解,其实Zab协议完全可以对比PaxosRaft协议来讲解,一方面容易理解协议的进化,一方面可以理解这些协议的区别,为什么会有Zab,为什么又会有Raft,各自解决了一些什么问题,等等。

师傅领进门,修行在个人。

以上就是我个人对本次课程的总结了,纯属个人感受。这些老师没有提到的地方还是自己去研究吧,毕竟纸上得来终觉浅,还是得自己深入的研究才能变成自己的理解和认知。不过说到这里,老师分享的那几句工作经验的总结,我倒是觉得说得蛮好的,说到底,做技术的还是要有深厚的技术能力,要能跟周围的人比起来有自己的技术壁垒。

老师的课程权当一个简要的大纲吧,知识图技能树还得是自己点,继续修行吧~