《大型网站系统与JAVA中间件开发实践》读后感

最近买的技术书比较多,一本还没看完又来一本,前端、后端都涉足一些,可惜都不深,这点需要改进,持续一段时间思考一个方面的问题这样的效果应该会好点。具体这本书已经忘了当时从哪儿看到的介绍,发现一堆业界名人的推荐,到豆瓣看了看目录和评论,当然三百来页也是个重要指标(估计一到两周也就看完了),于是就下单买了。这段时间Tomcat源码分析暂停,有些思路没理清,看着看着就看到别的框架上了《大型网站系统与JAVA中间件开发实践》读后感,注意力不够集中,也憋不出什么花团锦簇的文章,就写写读后感吧。

全书整体脉络很清楚,先介绍了分布式系统,接着以大型网站及架构演进过程中不同时段遇到的挑战引出中间件的话题,之后简单介绍各类中间件中用到的通用技术(如垃圾回收、内存布局、反射、网络通信),随之以大型网站架构中各层如服务层、数据访问层、消息层、软负载等分章论述其中遇到的挑战和应对策略。

整本书翻完之后首先的感觉是作者已经建构了关于这个领域成体系的知识,能够仅通过文字加最简单的框图将“架构”这种话题娓娓道来内功应该不浅(好吧,此类文章夸到此时该批评出场了)。像豆瓣里的一些人评论的那样,很多东西感觉讲的不深入,话题起了个头,撩起兴趣来了,咔,结束了。让看官们把脱下的裤子就这么草草穿上当然会有很多不甘心,可以理解。此现象我觉得是针对的读者群事先没说清,如果你是Java领域的初学者,或者有过几年开发经验,但常接触的只是java.lang.util下面的某几个类,知道个ssh,参与了几个MIS系统,开发的功能也就是些增删改查,看起来自然吃力。此前只知道how,很少想why,遇到问题只知道google甚至只知道baidu,一页一页翻过去,用别人类似场景中解决方案逐个试错,试出一个有效的来就觉得大功告成。遇事没有由点及线再及面的深入思考、理解的习惯,书中的场景自然陌生,问题来了却只给了个文字性的解决方案描述当然不适应,但一本三百多页的书要把架构的细节面面俱到讲清楚可能吗?“talk is cheap show me the code”,阿里系在java领域开源了那么多东西,直接去看人家的源码吧。

建议曾经接触过或思考过分布式应用的Java工程师看看,毕竟这样的人能够站到相似的背景线上,与作者在书中的对话更容易一些。但淘宝面对的问题实际上已经不是大量开源组件所能直接解决的,所以才需要他们深入源码细节、消化之后再创造。比如一个信息路由,我所接触的只是需要分机器路由就OK了,但他们甚至需要考虑到机房、机架这种粒度。毕竟这本书里面涉及了众多概念:阿姆达尔定律、BIO NIO AIO、应用服务化 服务治理、消息中间件、数据垂直拆分水平拆分、CAP BASE Paxos、读写分离(Master Slave)。很多地方是顺着一条主线的思路讲的时候引出来的,所以只做简单介绍,但于我来说如果此前陌生就会记下来,另外花时间了解。

一句话,别指望这是一本架构方面的大全。能够给出的是别人面对问题、解决问题的思路,剩下的还是交由你自己解决~

相关推荐