大型网站技术架构 核心原理与案例分析
传统的企业应用系统主要面对的技术挑战是处理复杂凌乱、千变万化的所谓业务逻辑,而大型网站主要面对的技术挑战是处理超大量的用户访问和海量的数据处理;前者的挑战来自功能性需求,后者的挑战来自非功能性需求;功能性需求也许还有“人月神话”聊以自慰,通过增加人手解决问题,而非功能需求大多是实实在在的技术难题,无论有多少工程师,做不到就是做不到。IT系统应用于企业管理已有超过半个世纪的历史,人们在这方面积累了大量的知识和经验(架构模式,领域分析,项目管理),而真正意义上大型网站从出现至今不过短短十多年的时间,很多技术挑战还在摸索阶段。市面上关于传统企业应用开发的书籍汗牛充栋,而真正能够深入全面地阐述大型网站技术架构的图书寥寥无几。所以很多人就很困惑:为什么很多看起来不是很复杂的网站,比如Facebook、淘宝,都需要大量顶尖高手来开发呢?
值得庆幸的是,作者为我们带来了这本《大型网站技术架构:核心原理与案例分析》,比较全面地阐述了大型网站的主要技术挑战和解决方案。宏观层面上,将网站架构的演化发展、架构模式、核心要素一一道来;微观层面上,将网站架构常用的分布式缓存、负载均衡、消息队列、分布式服务、甚至网站如何发布运维都逐一进行了阐述。大型网站的技术之道尽在于此。
这些年互联网技术蓬勃发展,各种成熟的组件、工具、框架越来越丰富,各种理论逐渐发展成熟,各大公司公开的理论和实践资料也越来越多,在各个领域都有比较成熟的解决方案,但是研究领先互联网公司的架构,无论是Google、Facebook、Amazon还是淘宝、支付宝、腾讯、百度,都各有其独特的地方。
各个环节都有成熟的产品或者方案,为什么这么多互联网公司的架构还有如此明显的差异呢?是不是照着Google、Facebook、淘宝的架构做,就能做好一个“大型的互联网应用”呢?
正如本书中所言:“好的设计绝对不是模仿、不是生搬硬套某个模式,而是在对问题深刻理解之上的创造与创新,即使是‘微创新’,也是让人耳目一新的似曾相识。山寨与创新的最大区别不在于是否抄袭、是否模仿,而在于对问题和需求是否真正理解与把握。”
这些大型的互联网应用是设计出来的?还是演化出来的?在设计的过程中需要考虑哪些因素?演化过程中都会面临哪些问题,哪些挑战?
本书从性能、可用性、伸缩性、扩展性、安全性几个网站核心架构要素切入,全面地介绍了这些核心要素面临的问题域、理论基础及应对方案;对这几个方面进行系统地分析,结合目前成熟的解决方案,以及作者自己的工作经验,理论联系实际,踏实细致地提出合理的解决方案,非常值得我们学习和借鉴。
作者还通过对淘宝、Wikipedia、分布式存储系统、秒杀系统等案例的分析,仔细探讨了典型互联网架构的演进过程,剖析了分布式系统设计和实现中的挑战和解决方案,并研究了极端情况下,秒杀给网站带来的难以预计的瞬间高并发冲击的应对策略和架构设计。还通过一些实实在在发生过的故障案例分析,从另一个侧面来说明,我们在做技术架构时,需要考量的一些关键点,这些分享都是不可多得的血泪经验。
-
谋事要有智慧,做人要懂变通
带女秘书去开房,女秘书忘带身份证,不要再傻乎乎的问,哎,能不能通融一下啊?只要你问了,肯定不行。你可以让女秘书在外面小等一会儿,就... 928 0 24-11-18 -
LWW解剖学精要图谱--头部和颈部
《LWW 解剖学精要图谱》所展示的解剖学内容丰于解剖学概要,简于厚重的传统解剖学教科书。这个系列中的每一个主题都配有丰富的图解和完全... 1097 0 24-06-18 -
三耳电脑可视数字复读机
将内存注册机复制到软件的安装目录/路径下并运行,将截获的软件注册码输入到软件中即可完成破解。三耳电脑可视数字复读机.exe 880 0 24-08-20 -
今日热榜
汇聚几乎所有主流平台的实时热榜,真正做到对热点信息一网打尽,再也不用来回切换网站追热点了,新媒体工作者福音。 632 0 21-11-27 -
网站、公众号、小程序菜单栏目素材图标
549 0 21-07-14 -
底部弹出菜单兼容PC和移动端
391 0 21-06-02 -
LAMP从入门到精通
LAMP是Linux、Apache、MySQL、PHP/Perl/Python的简称。1998年Michael Kunze在电脑杂志C'T撰写的文章中首次使用了缩略语LAMP。它所组成... 1053 0 24-05-24 -
396经济类综合联考真题
2011年396经济联考真题解析.pdf2011年396经济联考综合能力真题.pdf2012年396经济联考真题解析.pdf2012年396经济联考综合能力真题.pdf2013年... 1287 0 24-08-09
发表我的评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~