内容简介 · · · · · ·
本书围绕大型网站和支撑大型网站架构的 Java 中间件的实践展开介绍。从分布式系统的知识切入,让读者对分布式系统有基本的了解;然后介绍大型网站随着数据量、访问量增长而发生的架构变迁;接着讲述构建 Java 中间件的相关知识;之后的几章都是根据笔者的经验来介绍支撑大型网站架构的 Java 中间件系统的设计和实践。希望读者通过本书可以了解大型网站架构变迁过程中的较为通用的问题和解法,并了解构建支撑大型网站的 Java 中间件的实践经验。对于有一定网站开发、设计经验,并想了解大型网站架构和支撑这种架构的系统的开发、测试等的相关工程人员,本书有很大的参考意义;对于没有网站开发设计经验的人员,通过本书也能宏观了解大型网站的架构及相关问题的解决思路和方案。
作者简介 · · · · · ·
曾宪杰,淘宝花名华黎,现任淘宝技术部总监。2002年毕业于浙江大学计算机系。2007年加入淘宝网平台架构团队,负责构建淘宝自主的消息中间件系统,同期主导了淘宝数据层的创建,这两个产品也是淘宝中间件中较为重要的两个。2010年下半年起开始负责整个淘宝中间件团队,帮助团队成为业内知名的Java技术团队。2012年开始从中间件走向应用系统的研发工作,2013年初负责新组建的淘宝技术部。熟悉C++和Java,在多线程、并发、网络通信及支撑大型网站的中间件领域有较多经验,对新技术有浓厚的兴趣。致力于带领团队在无线、数据、业务 平台和组件化开发方面取得突破。与林昊合著有《OSGi原理与最佳实践》一书。
目录 · · · · · ·
1.1 初识分布式系统 1
1.1.1 分布式系统的定义 1
1.1.2 分布式系统的意义 3
1.2 分布式系统的基础知识 5
1.2.1 组成计算机的5要素 5
· · · · · · (更多)
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中间件开发实践"的人也喜欢 · · · · · ·
- 从Paxos到Zookeeper 7.7
- 深入理解Java虚拟机(第2版) 9.1
- 大规模分布式存储系统 7.8
- 分布式服务框架:原理与实践 6.6
- Kafka权威指南 8.4
- 互联网创业核心技术 8.4
- 实战Java高并发程序设计 8.3
大型网站系统与Java中间件开发实践的书评 · · · · · · ( 全部 29 条 )
梳理知识体系,也可作为准备系统设计面试的入门指南
> 更多书评 29篇
以下书单推荐 · · · · · · ( 全部 )
- 大数据 (养鸭专业户)
- 3.Java (葡萄)
- IT 三级 中间件及SOA、Load Balance 1.1.1.4.5 (ajian005)
- IT 三级 Java程序设计语言、框架技术(实用性) 1.1.1.1.2 (ajian005)
- 后端程序员成长阅读书目 (YigWoo)
谁读这本书? · · · · · ·
二手市场
· · · · · ·
订阅关于大型网站系统与Java中间件开发实践的评论:
feed: rss 2.0
0 有用 横槊 2014-06-15 21:06:22
难得的讲分布式架构做到有深度、有大量实战经验的好书
3 有用 hongqn 2014-04-29 11:53:07
拿到书稿,一读之下不禁击节赞叹!这本书对大型网站发展过程中会遇到的各种架构问题和解决方案的讨论和总结,正是我在过去多年的工作中经常碰到和思考的。真是心有戚戚焉!本书详细阐述了解决大型网站架构问题时通常都会采用的方案:服务框架、数据访问层、消息中间件、配置管理等,对为什么要做、如何做、如何权衡得失等进行了非常细致的介绍,是一本不可多得的好书。虽然本书的内容是基于Java的实现,但在架构层面,对使用任... 拿到书稿,一读之下不禁击节赞叹!这本书对大型网站发展过程中会遇到的各种架构问题和解决方案的讨论和总结,正是我在过去多年的工作中经常碰到和思考的。真是心有戚戚焉!本书详细阐述了解决大型网站架构问题时通常都会采用的方案:服务框架、数据访问层、消息中间件、配置管理等,对为什么要做、如何做、如何权衡得失等进行了非常细致的介绍,是一本不可多得的好书。虽然本书的内容是基于Java的实现,但在架构层面,对使用任何语言的架构师和开发者都具有重要的参考价值。 (展开)
0 有用 员外 2014-07-22 14:30:05
很多问题已经遇到过了,在实际上中产生了类似或更简单粗暴的解决方案,有种不谋而合的感觉
0 有用 iCoolSea 2016-07-26 22:57:26
常识性介绍,入门可以看看。
0 有用 映天蓝 2014-09-07 00:28:13
很好的科普书
0 有用 wake 2024-02-05 22:59:32 广东
其实互联网相关的知识去互联网公司后很容易接触,并不是什么难点。我司很多刚来的大学生在半年内都能把一些中间件系统摸的很明白,并不是说有多难,只是接触少,对未知的东西感到害怕疑惑而已。我在这里可以给那些想学习这方面的同学提供几本书,这几本书对互联网的知识能很快入门和了解全景。不是广告。
0 有用 zozo 2023-10-28 17:04:06 广东
对大型网站系统架构有完整的介绍,但并没有具体到某某开源框架的实践。数据访问层和消息中间件这两章值得细读,现有的一些流行框架与书中描述的设计思想基本一致。
0 有用 诺艾尔上士 2023-05-20 11:51:30 浙江
还行,不深入
0 有用 西泽新兵卫 2023-02-25 09:22:34 北京
2016年读。
0 有用 Ten 2022-10-23 11:26:39 广东
读完前三章,写的什么鬼,凑字数?KPI?