文章吧-经典好文章在线阅读:《大规模分布式系统架构与设计实战(含光盘)》的读后感10篇

当前的位置:文章吧 > 经典文章 > 读后感 >

《大规模分布式系统架构与设计实战(含光盘)》的读后感10篇

2018-07-10 04:34:01 来源:文章吧 阅读:载入中…

《大规模分布式系统架构与设计实战(含光盘)》的读后感10篇

  《大规模分布式系统架构设计实战(含光盘)》是一本由彭渊著作机械工业出版社出版的2014-3图书,本书定价:59.00,页数:,特精心网络整理的一些读者读后感希望大家能有帮助

  《大规模分布式系统架构与设计实战(含光盘)》读后感(一):写给哪买这本书的4in1用户

  fourinone号称了集成了hadoop,zk,memcache,mq于一身的四不像超级神器,致力于分布式应用。别的我不懂,今儿聊一下fourinone中的分布式缓存以及分布式文件系统,说到分布式,不得不用到网络通讯,不得不提及RPC,fourinone号称只有100多K,不依赖任何第三方jar,那通讯怎么玩啊!自己用socket或者NIO实现,要知道用NIO实现一个网络通讯框架是很考验技术功底,淘宝的boyan曾经有一篇ppt介绍过NIO的trap和trick.作者当然是绕开这些,使用JDK自带的RMI,RMI这项技术有点老了,我看过JDK的实现还是采用BIO,one request per one thread的方式,序列化采用JDK本身的序列化,性能不好评价,因为我没有用过。

  好了回归主题,说一说分布式缓存,主流的分布式缓存我们知道用memcached、redis这两个都很出色,fourinone的分布式缓存类似memcached,只支持kv存储。那他是怎么是实现呢?说到kv存储,HashMap是不二之选,对4in1应该也是用的LinkedHashMap,LinkedHashMap,用额外的链表记录访问顺序,LinkedHashMap提供了一个接口removeEldestEntry,使在插入时有机会删除那些最近不活跃的entry,ok继续,分布式缓存,那网络通讯怎么玩的呢?当然是我们前面提到的RMI。至此了解了分布式缓存的实现,简单吧!我相信各位看官看了我的描述自己也能实现了一个自己把玩一下。

  继续,说一下这样做的问题,分布式系统几乎是为了高并发而设计的,memcache,redis都是这样。HashMap在高并发下又会怎么样呢?我想你此时脑子里会出现一个场景,这是一个坑,HashMap不是线程安全的,在并发情况下扩容会导致死循环从而导致cpu100%。不了解的可以在coolshell上搜一下,或者问度,这是个致命的问题,我不知道作者是怎么解决的,同步加锁,我没有看到sync,用concurrenthashmap貌似也没用吧。因为concurrenthashmap虽然是线程安全的,但是却没有LRU的功能,如果真要实现,得整合Linkedhashmap和concurrenthashmap的功能于一身,淘宝的人这样做过。再来说一下网络通讯,memcached和redis不约而同的使用非阻塞IO epoll,前者使用libevent,redis在libv的肩膀上简化了轮子。我就不用BIO的RMI了。

  说到分布式文件,你会想到那些HDFS,GFS,TFS等等还有好多,还是回到4in1中的fttp,网络通讯怎么玩的呢?fttp,http名字一个字母之差,会不会是http啊,恭喜你猜对了,这时你可能怀疑,http client好办我用httpurlconnection就可以解决,那http server呢作者内嵌jetty,作者可是号称不依赖任何第三方jar啊难道自己实现一个http server?小伙伴们我们又错了,作者很高端,采用JDK6以后自带的httpserver,关于这个httpserver。这样就可以通过http上传下载文件了,那你说我用jetty和httpclient分分钟就可以分布式文件了,优越感油然而生信心瞬间爆棚!首先说一下httpserver我读了一下代码感觉类似还是比较粗放,和Netty没发比,Selector的使用,为了不影响accept事件的阻塞,读写事件都注册到另外一个selector上处理,这样每一个request就会有一个selector,当然作者也才了selector池的处理,使之能够重复使用,但高并发下还是会有很多的selector,而且也会带池的锁开销,再说一下内存管理,每个request都会创建一个buffer,并没有实现内存的管理,这块很粗放,在高并发时GC负担一定很大,感兴趣的小伙伴可以看看netty的实现,作者写过一篇blog说用一个类似伙伴系统和slab内存管理相结合的内存管理方案减少GC。这些且不表,你用过必须制定host以及文件目录的分布式文件系统吗,读写文件时,必须清楚地知道文件在那台机器的那个目录下,orz,这样就要崩溃了

  聊了这么多,小伙伴们也可能觉得我对4in1有偏见,其实不然,我只是觉得作者把这些类似玩具的东东开源并推广给大家,并号称分布式,有时也冠以淘宝的名号,大家都知道淘宝在国内开源的影响,小伙伴们很容易会从盲从,特别是不了解分布式想向分布式方面发展学习的小伙伴们,请大家要一定要擦亮眼睛啊。国内开源的分布式不多,讲分布式的书也不多,就那么几本,在此向大家推荐杨传辉的那本书《大规模分布式存储》,书中对主流的分布式kv,分布式文件系统,分布式表格数据库等都有详细的介绍。

  我曾经加到4in1的qq群,问了一句“4in1在淘宝那些场景下用到了,好的项目是经得起质疑的,实践检验真理的唯一标准结果我被踢出了群,在OSC以及ITEYE也看到一些同学问道了相同的问题,结果也是同样的下场,我不禁要问,作者是抱着什么样的态度开源呢,是跟大家分享,给大家带来便利,还是忽悠,然后写书忽悠?

  4in1中的并行计算,hadoop没研究过不懂,本文只针对分布式缓存和分布式文件系统

  《大规模分布式系统架构与设计实战(含光盘)》读后感(二):这年头写书就是快餐

  刚拿到这本书的时候,着实让我鸡冻了,这不是一本讲怎么使用hadoop的书,而是一本讲实现hadoop的书。

  火车上撸完这本书,真是让我“大开眼界”啊,最其可笑的书上的代码,我可以找出至少10+一份相同的代码,每次看到这里,我真是想对作者说,一个200多页的书,加上图和代码,真正能写多少字,50页都多了。

  从内容深度上,作者一再喷国内这些程序员们你们能不能别那么盲目的去追国外的项目,认为他们就是高大上啊,刚听这些话的时候还是觉得有一定的自省意义,但是说多了就烦了,重复了快三遍,把新浪还顺便黑了。

  好吧,这是一个技术人写出的技术书吗,我要看的是大规模分布式系统,你给我来这些,看到最后有一章解释LinkList比ArrayList要快很多,我当时恨不得把这本书撕烂,这是一个架构师给出的结论吗?架构师难道就只谈多个机器之间的协同,却不知道最基本的算法吗?

  我没给最差一颗星,是觉得作者喷的一些点在理,毕竟作者的能力我还是认可,可是您这样的态度把书写成这样就有点侮辱我们智商了。

  《大规模分布式系统架构与设计实战(含光盘)》读后感(三):让我们在欢笑见证一个轮子的诞生

  临睡前,翻开今天刚买的此书,看了前几页,笑到没睡意,觉得作者要么是一个不善表达的技术牛人,要么作者就是一个非常幽默的技术人。

  根据之前看这个系列上一本《大规模分布式存储》的经验。我以为这本书估计依然是罗列了各种开源的分布式组件,最后轻描淡写一两句“在阿里巴巴数据是多么多么大”。结果,作者给了我一个惊喜,因为,他要在本书介绍他的杰作--Fourinone 技术框架。看到这里我一下子兴奋了起来,哇,轮党前辈

  前辈在开始宏观的“调戏”了Hadoop体系之后,就下定结论“作为程序员使用好Hadoop这是非困难的”,丝毫没有犹抱琵琶半遮面建立了Fourinone产生背景。并且在第一章最后总结了几条为什么要Fourinone代替Hadoop。

  1.前辈说,Hadoop实现太复杂,API枯燥难懂不利于程序员(这...要是Hadoop不难用,北大青鸟怎么靠‘Hadoop从零开始培训’ 赚钱)

  2.前辈还说, Map/Reduce 容易把人思维框住(咦?)

  3.在一台机器上未能直接看出并行计算优势(咦? 都一台机器了,为什么还要看出并行的优势?)

  4.Hadoop没有简单易用的windows版(前辈,您是M$派来的救兵么)

  这几条理由确实让我醍醐灌顶,下次评估把“轮子”变为“产出”的时候一下子多了好多理由有没有。

  第二章,刚翻开,我就笑翻了。

  前辈一开始,介绍为什么推翻Master-Slave的设想。然后话锋一转,

  “30年的改革开放中国经济总量已经排到了世界第二,有部分原因农民工加工生产行业几十年辛勤劳动努力,是他们使中国经济获得了今天的地位。”(这尼玛啊)

  (高潮要来了!!!)

  “为了表示对中国农民工的敬意,Fourinone提出了一种简化的分布式并行计算模型...‘包工头-职介所-手工仓库-工人模式

  卧槽,这么说,前辈让“Master-Slave”这个名称完全站在了 工人阶级的对里面啊!政治正确

  看到这,彻底笑到睡意全无。太劲爆了!

评价:

[匿名评论]登录注册

评论加载中……