大型网站系统与Java中间件开发实践

出版日期:2014-4-24
ISBN:9787121227614
作者:曾宪杰
页数:360页

内容概要

曾宪杰,淘宝花名华黎,现任淘宝技术部总监。2002年毕业于浙江大学计算机系。2007年加入淘宝网平台架构团队,负责构建淘宝自主的消息中间件系统,同期主导了淘宝数据层的创建,这两个产品也是淘宝中间件中较为重要的两个。2010年下半年起开始负责整个淘宝中间件团队,帮助团队成为业内知名的Java技术团队。2012年开始从中间件走向应用系统的研发工作,2013年初负责新组建的淘宝技术部。熟悉C++和Java,在多线程、并发、网络通信及支撑大型网站的中间件领域有较多经验,对新技术有浓厚的兴趣。致力于带领团队在无线、数据、业务 平台和组件化开发方面取得突破。与林昊合著有《OSGi原理与最佳实践》一书。

书籍目录

第1章  分布式系统介绍
1
1.1 初识分布式系统
1
1.1.1 分布式系统的定义
1
1.1.2 分布式系统的意义
3
1.2 分布式系统的基础知识
5
1.2.1 组成计算机的5要素
5
1.2.2 线程与进程的执行模式
6
1.2.3 网络通信基础知识
13
1.2.4 如何把应用从单机扩展到分布式
18
1.2.5 分布式系统的难点
31
第2章 大型网站及其架构演进过程
35
2.1 什么是大型网站
35
2.2 大型网站的架构演进
37
2.2.1 用Java技术和单机来构建的网站
37
2.2.2 从一个单机的交易网站说起
38
2.2.3 单机负载告警,数据库与应用分离
40
2.2.4 应用服务器负载告警,如何让应用服务器走向集群
41
2.2.5 数据读压力变大,读写分离吧
50
2.2.6 弥补关系型数据库的不足,引入分布式存储系统
56
2.2.7 读写分离后,数据库又遇到瓶颈
58
2.2.8 数据库问题解决后,应用面对的新挑战
60
2.2.9 初识消息中间件
63
2.2.10 总结
64
第3章 构建Java中间件
67
3.1 Java中间件的定义
67
3.2 构建Java中间件的基础知识
68
3.2.1 跨平台的Java运行环境——JVM
69
3.2.2 垃圾回收与内存堆布局
70
3.2.3 Java并发编程的类、接口和方法
72
3.2.4 动态代理
89
3.2.5 反射
91
3.2.6 网络通信实现选择
93
3.3 分布式系统中的Java中间件
94
第4章 服务框架
97
4.1 网站功能持续丰富后的困境与应对
97
4.2 服务框架的设计与实现
100
4.2.1 应用从集中式走向分布式所遇到的问题
100
4.2.2 透过示例看服务框架原型
101
4.2.3 服务调用端的设计与实现
107
4.2.4 服务提供端的设计与实现
132
4.2.5 服务升级
137
4.3 实战中的优化
138
4.4 为服务化护航的服务治理
142
4.5 服务框架与ESB的对比
146
4.6 总结
147
第5章 数据访问层
149
5.1 数据库从单机到分布式的挑战和应对
149
5.1.1 从应用使用单机数据库开始
149
5.1.2 数据库垂直/水平拆分的困难
150
5.1.3 单机变为多机后,事务如何处理
152
5.1.4 多机的Sequence问题与处理
165
5.1.5 应对多机的数据查询
168
5.2 数据访问层的设计与实现
174
5.2.1 如何对外提供数据访问层的功能
174
5.2.2 按照数据层流程的顺序看数据层设计
177
5.2.3 独立部署的数据访问层实现方式
192
5.2.4 读写分离的挑战和应对
194
5.3 总结
200
第6章 消息中间件
203
6.1 消息中间件的价值
203
6.1.1 消息中间件的定义
203
6.1.2 透过示例看消息中间件对应用的解耦
204
6.2 互联网时代的消息中间件
208
6.2.1 如何解决消息发送一致性
209
6.2.2 如何解决消息中间件与使用者的强依赖问题
218
6.2.3 消息模型对消息接收的影响
222
6.2.4 消息订阅者订阅消息的方式
229
6.2.5 保证消息可靠性的做法
230
6.2.6 订阅者视角的消息重复的产生和应对
245
6.2.7 消息投递的其他属性支持
249
6.2.8 保证顺序的消息队列的设计
252
6.2.9 Push和Pull方式的对比
257
第7章 软负载中心与集中配置管理
259
7.1 初识软负载中心
259
7.2 软负载中心的结构
261
7.3 内容聚合功能的设计
263
7.4 解决服务上下线的感知
267
7.5 软负载中心的数据分发的特点和设计
269
7.5.1 数据分发与消息订阅的区别
269
7.5.2 提升数据分发性能需要注意的问题
271
7.6 针对服务化的特性支持
272
7.6.1 软负载数据分组
272
7.6.2 提供自动感知以外的上下线开关
273
7.6.3 维护管理路由规则
273
7.7 从单机到集群
274
7.7.1 数据统一管理方案
275
7.7.2 数据对等管理方案
276
7.8 集中配置管理中心
280
7.8.1 客户端实现和容灾策略
282
7.8.2 服务端实现和容灾策略
284
7.8.3 数据库策略
285
第8章 构建大型网站的其他要素
287
8.1 加速静态内容访问速度的CDN
287
8.2 大型网站的存储支持
291
8.2.1 分布式文件系统
292
8.2.2 NoSQL
294
8.2.3 缓存系统
298
8.3 搜索系统
301
8.3.1 爬虫问题
302
8.3.2 倒排索引
302
8.3.3 查询预处理
304
8.3.4 相关度计算
304
8.4 数据计算支撑
304
8.5 发布系统
307
8.6 应用监控系统
310
8.7 依赖管理系统
312
8.8 多机房问题分析
315
8.9 系统容量规划
317
8.10 内部私有云
319
后记
321

作者简介

本书围绕大型网站和支撑大型网站架构的 Java 中间件的实践展开介绍。从分布式系统的知识切入,让读者对分布式系统有基本的了解;然后介绍大型网站随着数据量、访问量增长而发生的架构变迁;接着讲述构建 Java 中间件的相关知识;之后的几章都是根据笔者的经验来介绍支撑大型网站架构的 Java 中间件系统的设计和实践。希望读者通过本书可以了解大型网站架构变迁过程中的较为通用的问题和解法,并了解构建支撑大型网站的 Java 中间件的实践经验。对于有一定网站开发、设计经验,并想了解大型网站架构和支撑这种架构的系统的开发、测试等的相关工程人员,本书有很大的参考意义;对于没有网站开发设计经验的人员,通过本书也能宏观了解大型网站的架构及相关问题的解决思路和方案。


 大型网站系统与Java中间件开发实践下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计17条)

  •     网站开发程序员面试必备
  •     和之前读过的 大型网站技术架构 这本书很像 我花了一天就读完了 总体上感觉还行 比较全面 但的确没给我带来多大的惊喜 虽然买之前也没抱着多少期待 。还是那句话,这本书里面的内容,基本上网上都能找到,这本书里面提到的,我之前也基本了解,所以感觉还是比较适合,想了解淘宝网技术架构的童鞋,而对于已经了解的童鞋,这本书最多只是一个新的梳理,对于不了解的童鞋,可能会有点看不太懂,还是要靠平时的积累。我更希望能有一本书能对大型网站系统某一知识点做由浅入深系统分析,那对大家可能更有帮助,比如针对服务框架,由表及里详细分析,从网络通信底层,讲到对象序列化反序列化,再讲到服务端,再讲到与spring整合,再讲到服务注册查找,服务软负载,服务治理,异常处理,分布式事务等等,在讲解过程中针对每一点由浅入深,把每点讲透,便做适当发散,这样也许能涉及整个体系。对于架构的童鞋,真的不再需要一本大而全的书,针对一个专题,小而精,小而美才是我们真正需要的。
  •     与宪杰认识多年,也一起在淘宝共事过不短的时间,我深知他在大型互联网系统和Java中间件领域不仅有很强的理论基础,而且有丰富的实战经验。终于看到他把多年的积淀汇集成书,由衷地为他感到高兴。拿到书稿后,我迫不及待地从头至尾拜读了一遍。这应该是国内第一本从基础知识到构建应用,从理论到实践,把Java中间件非常系统和完整地阐述清楚的书。此外,书中列举的大量实践经验与很多通用设计思路不同,甚至是相反的。这是因为当面对高并发、高访问和海量数据时,在学校中学到的知识或普通书本中看到的方法行不通。这些看似古怪或丑陋的方法,是大型互联网企业用无数血泪换来的宝贵经验。特此推荐给对构建大型互联网 系统感兴趣的读者。

精彩短评 (总计50条)

  •     分布式架构基础及分布式服务,数据访问层,消息中间件的设计和原理
  •     介绍了从单机系统到大型网站的架构演变,易懂
  •     相见恨晚!17/3/24 update:181页!!!劳资竟然还记得!哈哈哈哈哈哈!
  •     对中间件的使用是大型网站与中小型网站的差别之一
  •     全书简单明了,对于中间件的技术进行了概括性的说明,读起来比较容易,虽然细节深入不多,但是提纲挈领
  •     架构师入门级别的书。像我一样菜的你推荐拥有
  •     对数据库访问层、分布式服务框架、消息中间件等有较深入的介绍。
  •     学长写的,赞一个。刚接触分布式服务的时候,用到各种中间件,看过这本书,对在线业务的架构演进和分布式会有一个整体的认识
  •     架构三本里,这本详细讲解了PRC、存储和mq,感觉算是细节最多的了,也是我看的时间最长的。推荐阅读顺序:林昊,李智慧,曾宪杰
  •     书中介绍的思想都是作者多年来的经验总结,需要细细揣摩,长知识了
  •     书不厚,主要讲的分布式系统发展历程之后遇到的一些问题和一些解决方案
  •     深入浅出,不错
  •     阿里巴巴工程师出品,其中大部分还是不错的。很全的一本web相关的书籍。但是很多和 大型网站技术架构 重复了就是了。
  •     开阔视野的好书
  •     大型网站的架构演变之路
  •     了解思想
  •     相当给力的一本书,正好遇到了一些问题,看到这本书有种豁然开朗的感觉。并不是一本代码书,而是一种思想的转变,如何启用面向服务型的架构,道的提升远比术的提升更有价值。
  •     国庆刚刚看完,行文清晰,东西都说的比较清楚。唯一不足之处就是使用的大量伪代码,影响阅读。其实都是以java为主的了,要是全用java写就好了。 还有就是排版上有问题,好几处两段一模一样的代码贴一起是几个意思?凑字数么
  •     总结的还是比较到位的
  •     非常实用,推荐
  •     常识性介绍,入门可以看看。
  •     讲的太泛……
  •     很基础,部分章节比较到位
  •     基本囊括了网站系统的方方面面。菜鸟升级的美味佳肴。虽然有些地方还不太懂,但是感觉很好吃的样子。
  •     好书,如果有机会写中间件或者看中间件源码的时候可结合本书相关章节
  •     弥补了技能的缺失
  •     入门书而已。
  •     讲的东西比较表面化,整本书感觉像是拼凑出来的,对读者不是很负责。 很多东西都是讲了讲概念,根据作者经验抛出了很多问题,然而并不告诉你是怎么解决这些问题的,即便有方案也是大而空的那种。示例代码都是大路边的基础代码,感觉就像是充字数。 毫无诚意的骗钱之作。
  •     给出了一个大体的架构演变过程,以及中间会涉及的一些大的问题。对于我来说,是一个指导学习的方向。
  •     其实一直对什么是中间件比较好奇,看完之后发现其实自己有时候也在做类似的事情。开发做到一定程度之后,各种理念都是想通的,虽然这两年不怎么写代码了,但是看到作者在书中提到的很多淘宝人解决问题的思路,感觉自己大部分都层遇到或者用到过,只是应用的领域不同。
  •     可以对网站的架构变迁以及 java 的一些使用有一定帮助
  •     通俗易懂,又有深度
  •     挺不错的,写分布式系统的方式很新颖,是一本做分布式系统开发、架构不可对得的书一开始我。书中的内容确实比较详实。
  •     这本书总体评价算是及格级别的。主要问题: 1.书中涉及内容很宽泛,但是每个点都是概述,缺乏详细阐述。为了吸引读者,书名起的过于高大上。内容很难对于这么多内容做很好的阐述。 2.排版松散,有故意拼凑版面的可能。 3.列举步骤过多,陈述事实,但缺乏原理性分析。可能是阿里技术保密的原因。 总之,作为科普尚可,其他不敢恭维。
  •     关于分布式服务各要素的要点都讲到了,还需要个人针对不同的场景去深度思考和实践。
  •     架构入门,淘宝出品,跟李智慧的书略同。
  •     作为入门介绍,挺好的
  •     让你了解由单机发展到分布式问题次元的变化
  •     算是分布式系统入门的书吧,没有写的太深入。分布式事物和消息队列写的还是不错的。
  •     主要讲了服务框架(包括软负载中心与集中配置管理)、数据访问层、消息中间件这三大部分,基本上都是针对分布式而言。行文中比较喜欢的一点是某个问题上可能会提出多个方案来进行比较,但有时也不会给出一个答案,事实上真正的业务系统也的确需要具体问题具体分析。不过正因为如此,有的明显不行的方案更像是凑数。
  •     看了前四章,如何使用服务从集中化走向分布式,讲的非常好 ---- 消息中间件 --- 科普(终于了解倒排索引是个什么鬼)
  •     介于个人对分布式系统有所诉求,经同学推荐,读完此书,对分布式系统初入门径,如果作者加入分布式理论的基础会更好,如图论,群论,
  •     一部面向架构设计的不可多得的好书, 虽然涉及的实现细节不多, 但其介绍的系统设计/框架设计/高可用/高并发等设计方案是每位开发同学所必须掌握的. 虽然每位开发不一定有机会参与到某个具体的各个分布式组件(如RPC, MQ, 分布式数据层)的开发, 但了解其实现原理对使用这些组件也是有非常重要的价值. 当时看到网上的推荐, 想都没想就花"重金"拿下了<大型网站系统与Java中间件>和<大型网站技术架构 : 核心原理与案例分析>两本书, 拿到后看到薄薄的两部书还有一丝心疼, 但现在真正读完来看: 当时确实是一个明智的决定. 而且这两本书也是大型网站设计的双生花.<架构>偏视野, 宽广, <中间件>偏原理, 深入. 值得一读!!
  •     还是有很多地方只是点到而已,缺少细节
  •     与之前的《大型网站技术架构》相比,并没有多少惊喜,本来是冲着“实战”买这本书的,但是作者也只是对分布式系统的一些概念进行了介绍,说好的Java中间件实战呢?
  •     神书,作者对于各种中间件的实现阐述的非常详细
  •     全程360度暴击痛点!最重要的是打开了从单机应用到分布式应用的新世界
  •     全书的脉络是比较清晰的,可惜的是干货不多,很多地方是概念堆砌,点到即止,与书名中“实践”二字相差很远,总的说来是一本介绍性质的书,想深入了解细节在这本书中是找不到答案的,还需要看相关领域的经典书籍。
  •     不可多得的中文技术佳作,对了解中间件实现难点及细节非常有帮助
  •     对于了解互联网大型架构很有帮助,覆盖很全,不过最后介绍的东西也很重要,但是并没有展开。对于了解rpc,中间件推荐阅读。
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024