资源名称:互联网创业核心技术-构建可伸缩的Web应用
内容简介:
可伸缩架构技术是所有互联网技术中最重要,也是最引人入胜的技术。《互联网创业核心技术:构建可伸缩的web应用》针对互联网创业需求快速迭代,业务快速发展,短时间内用户、数据、访问量激增的特点,提纲挈领地描述了伸缩性架构的基本原理与设计原则,详细阐述了Web应用前端层、服务层、数据层的可伸缩架构,并花大量篇幅讲述了缓存技术和异步处理技术的可伸缩设计及其在Web系统中的具体应用。
《互联网创业核心技术:构建可伸缩的web应用》面向互联网创业公司工程师,也适用于所有互联网行业的工程师,对非互联网行业的软件工程师也有借鉴作用。事实上,《互联网创业核心技术:构建可伸缩的web应用》适合所有对可伸缩架构有兴趣的软件技术人员阅读。
资源目录:
1 核心概念 1
什么是伸缩性 2
从单一服务器到全球用户的 Web 架构演化 4
单一服务器 5
使用更强的服务器:垂直伸缩 6
服务分离 10
内容分发网络:静态内容的伸缩性 12
分散访问流量:水平伸缩 13
服务全球用户的伸缩性架构 16
数据中心基础设施架构概览 18
前端 19
Web 应用层 20
Web 服务层 20
附加组件 21
数据持久层 21
数据中心基础架构 22
应用架构概览 23
前端 24
Web 服务 25
支撑技术 29
小结 30
2 软件设计原则 31
简单 31
隐藏复杂与构建抽象 32
避免过度设计 33
尝试测试驱动开发 34
从软件设计的简化范例中学习 35
低耦合 36
促进低耦合 37
避免不必要的耦合 39
低耦合范式 40
不要重复自己(DRY) 41
复制粘贴代码 42
基于约定编程 43
画架构图 46
用例图 49
类图 50
模块图 51
单一职责 52
改善单一职责 52
单一职责的例子 53
开闭原则 53
依赖注入 55
控制反转(IOC) 57
为伸缩而设计 59
增加副本 60
功能分割 62
数据分片 63
自愈设计 65
小结 67
3 构建前端层 69
状态管理 70
管理 HTTP 会话 73
管理文件 77
管理其他类型的状态 80
可伸缩的前端组件 83
DNS 84
负载均衡器 85
Web 服务器 92
缓存 93
自动伸缩 94
部署案例 96
AWS 场景 97
私有数据中心 98
小结 101
4 Web 服务 102
Web 服务设计 102
Web 服务作为一种备用表示层 103
API 优先方式 105
务实的方式 107
Web 服务类型 108
以功能为中心的服务 109
以资源为中心的服务 111
伸缩 REST Web 服务 115
保持服务无状态 115
缓存服务响应 121
功能分割 124
小结 127
5 数据存储层 129
MySQL 伸缩性 130
复制 130
数据分区(分片) 142
NoSQL 伸缩性 157
最终一致性 160
快速恢复增加可用性 164
Cassandra 拓扑结构 166
小结 170
6 缓存 171
缓存命中率 171
基于 HTTP 的缓存 173
HTTP 缓存头 174
HTTP 缓存技术类型 179
伸缩 HTTP 缓存 185
缓存应用对象 188
对象缓存的一般类型 189
伸缩对象缓存 194
缓存的经验法则 198
缓存整个调用栈 198
用户间缓存重用 199
从哪儿开始使用缓存? 201
缓存失效的困难 201
小结 203
7 异步处理 204
核心概念 204
同步处理的例子 205
异步处理的例子 208
购物类比 211
消息队列 213
消息生产者 214
消息代理 215
消息消费者 216
消息协议 220
消息基础设施 221
消息队列的好处 224
实现异步处理 225
更好的伸缩性 226
平衡流量峰值 227
失败隔离和自我修复 228
解耦 229
消息队列相关的挑战 230
消息无序 230
消息重新入队列 233
竞态条件可能性增大 233
复杂度风险 234
消息队列有关的反模式 235
将消息队列当作 TCP 套接字 235
将消息队列当作数据库 235
耦合消息生产者和消费者 235
缺少坏消息处理 236
消息平台快速比较与选择 237
亚马逊简单队列服务 237
RabbitMQ 240
ActiveMQ 242
最后的比较说明 243
事件驱动架构介绍 245
请求/响应交互 246
直接队列交互 247
事件驱动交互 247
小结 250
8 数据搜索 252
索引介绍 252
数据建模 260
NoSQL 数据建模 260
宽列数据存储的例子 264
搜索引擎 271
搜索引擎介绍 272
使用专用搜索引擎 274
小结 275
9 伸缩性的其他维度 277
自动化实现生产力可伸缩 278
测试 278
构建与部署 280
监控与报警 285
日志聚合 289
个人可伸缩 291
加班不是一种伸缩性方案 291
自我管理 293
伸缩敏捷团队 300
增加人手 300
流程与创新 301
团结的文化 302
小结 303
A 推荐阅读 304
资源截图: