《大型网站技术核心原理与案例分析》读书笔记

最近粗粗翻了一遍这本书,写的还是不错的,通读下来就是讲的比较全面,但是不深入,更像是一本入门级别的数,从大局观念来讲,围绕架构的高可用、伸缩性。

下面大概梳理下我理解的内容:

第一章:大型网站的架构演化

这里作者介绍了架构的演化过程,之前看过kavin大神的关于架构漫谈系列,到底架构是演化的还是一开始就是设计好的有争议,我理解就是取决一个度,就是纪要满足当前业务需求,又不要陷入过度超前的状态,适度超前。应该是能对技术、业务有很深的理解,就是作者说的当1W用户的时候用什么,10W,100W,1000W用户等随着用户、业务的增长,可能遇到什么问题,什么技术来规避。

——————————————架构——————————————————

第二章:大型网站架构模式

第二章讲了常见的架构模式,我觉得这是术,应该从第三章开始看,就是为了解有哪些问题域挑战,怎么去解决。理解了业务背景,再去看这些提炼出来的架构模式就更容易理解。

分层、分割我理解的就是对于系统的拆分能力,从不同角度去划分系统。这里之前有人讨论是树形结构,这里我想再引用kavin大神《架构漫谈》http://www.infoq.com/cn/minibooks/discussion-on-architecture,第二章的前3节分层、分割、分布式都是这个角度去看。按照Kaven的观点:这是利益切分结果,要沿着定位、识别问题,切分的原则、切分与建模、切分输出就可以分别于这些内容对应上,集群也就是分后的整合问题。2.4的缓存这块,我理解为对于数据存储或者数据库的一种切分,也就是除了除了关系型数据库的读写分离,垂直、水平拆分之外,nosql也可以是一种提高效率的读数据库。异步:也是为了提高性能,或者说消息队列是为了异步跟解耦。冗余,我理解就是为了保障安全,也就是为了保障高可用,假设系统是不安全的,采取的对应措施。

第三章

我觉得这些考量指标,更像是问题挑战,也就是之前说的问题所在,想第二章所采取的办法更像是对第三章的解答。

回顾一下:性能、可靠性、伸缩性、扩展性、安全性

第二部分架构部分属于展开,

第四章讲得比较宽,前面说了性能的一些指标,后面从流程角度去讲,就是从前到后。这块展开有很多知识点可以说,任何东西数据量大了之后就变得不简单,我觉得这部分网上的各种框架图很多,怎么结合实际情况落地最重要,印象中开涛大神的文章讲的很好,《构建需求响应式亿级商品详情页》,还有《构建亿级前端度服务》。我觉得很好,因为本书从大面上、理论上给出了大概,而结合开涛大神这种接地气的东西对于实际项目更具有借鉴意义。说道这里,我对于必备的nginx还不会,待系统学习。再举个自己有体会的小例子,大家对于常见的httpclient并不陌生,以前在处理大量设备上报请求的时候,一些参数设置不好就容易出问题。

举一反三:书上写的针对web的前端优化,那么如果是APP呢,我想就要结合APP自己的特性:连接不稳定、流量大小敏感、消息推送等作出针对性的优化。有点扯远了,但是想起大神说的架构就是为业务服务的,离开业务扯架构就是耍流氓。

相对于前端,后端的优化更具有通用性,之前第二章也有介绍过不多说,4.3是从代码层面优化,看了就会明白为什么一些大公司面试要问一堆多线程、数据结构、垃圾回收的问题了,我理解就是小项目在压力不大情况下问题暴漏出来,大公司的高并发情况下要求比较高。

再扯一点,关于4.4存储性能优化,这块我理解是跟大数据有关系的。这块苏宁的安全大牛:季虎在讲风控的时候,提到过存储结构、尤其是是时间与速度的权衡。这块我是欠缺的,对于各种树结构、bloomfilter,bitmap等需要补课。

第五章:

本章介绍高可用,相关知识点:负载均衡,session集群。每个展开都有好多:负载均衡有很多常见算法,相关的还有缓存的预热等。思路就是单个节点处理能力有限,集群中添加节点或者界都不可用怎么移除。session这个作者倾向于集中式session管理。

关于高可用服务,我想到就是分布式服务,要避免单点故障。

对于高可用数据,对于cap根据实际情况进行取舍,这里还有关于事物的挑战,比如两阶段提交,最终一致性等等。这块可以看下网上的交易撮合系统是怎么处理的。

对于质量保证,我们经历过大公司的自动化那一套流程,都是老土的手动发布,感受不到。但是对于灰度发布这些还是要借鉴的,怎么从流程+规范来保障,减少人为失误。

对于网站监控,常见的就是日志上传flume+kafka那套。

第六章

伸缩性,负载均衡那块主要讲了一致性hash。

分布式缓存这块讲的不细,可以自己从网上找memcached或者redis对应的专题去学习。

第七章

可扩展性

主要讲了消息队列与分布式服务。同样偏大面,要落地可以结合各自代表(MQ、kafka),dubbo等。

第八章

安全,讲了常见的漏洞攻击、加密、垃圾过滤、风控。

安全是个很宽泛的话题,看看乌云白帽子上哪好多漏洞就知道了,应该结合实际业务展开。跟钱有关的或者偏隐私的都要加固。

比如APP角度,怎么去考虑,如何保证APP的key,保护传输过程不被篡改。

————————————案例—————————————————

本书的核心内容基本就这样,第三篇案例开始都比较虚了,也不能说虚,应该从发展的去看,业务是怎么推动技术的发展,或者技术怎么来满足业务的。

淘宝的案例讲的比较浅,还不如网上的《淘宝技术这十年》。秒杀的网上案例也不少了,什么小米最为典型,百度跟58的沈剑大神的都有介绍。我理解就是核心采用漏斗状一层层的降维。第13章的故障案例值得一看,术后败了就是遇到的坑,怎么去定位问题,解决问题,大平台锻炼人在这里很能体现,平台大了,容易出问题,解决问题的过程对于参与人来说就是成长的机会。填完坑也就积累了经验。

最后一篇有点扯情怀了,怎么说呢?架构师的职位决定了不但是技术大牛,还有跟团队打交道,技术是确定的,而人是不确定的。一扯到人就要复杂多了。所以很多技术大牛要提高自己的影响力,除了团队讲,公司讲,还会出来参加各种技术大会论坛进行布道,提高别人也成就自己。

看完了,自己的迷茫也少了一些,不会的还很多,需要成长,加油,改变来的不晚。


你可能感兴趣的:(设计模式,高并发,架构,设计)