| 作 者: | 梁嘉祯 |
| 出版社: | 机械工业出版社 |
| 丛编项: | |
| 版权说明: | 本书为公共版权或经版权方授权,请支持正版图书 |
| 标 签: | 暂缺 |
| ISBN | 出版时间 | 包装 | 开本 | 页数 | 字数 |
|---|---|---|---|---|---|
| 未知 | 暂无 | 暂无 | 未知 | 0 | 暂无 |
前言
第1篇 大型网站架构的发展与面临的挑战
第1章 大型网站业务和架构的发展 2
1.1 大型网站的业务演变 2
1.1.1 静态网站的出现 2
1.1.2 动态网站的出现 3
1.1.3 大型网站系统的出现 4
1.1.4 大型云计算网站系统的出现 6
1.1.5 大型网站的未来 7
1.2 大型网站架构的发展 8
1.2.1 动态网页时代 8
1.2.2 B/S架构网站的崛起 8
1.2.3 CDN加速网站响应 10
1.2.4 应用和数据分离 11
1.2.5 非关系型数据库和关系型数据库并存 11
1.2.6 集群化 12
1.2.7 分布式趋势 13
1.2.8 微服务 15
1.2.9 大型网站架构的未来 15
1.3 小结 16
第2章 大型网站架构面临的挑战 17
2.1 大型网站架构的基本问题 17
2.1.1 业务架构面临的挑战 17
2.1.2 技术架构面临的挑战 20
2.1.3 业务架构和技术架构的相互成全 21
2.2 业务架构的基本思路 21
2.2.1 递进思想 22
2.2.2 版本计划逐渐完善 24
2.2.3 持续优化,推陈出新 25
2.3 技术架构的基本思路 26
2.3.1 分层思想 26
2.3.2 IaaS、PaaS和SaaS分层管理 27
2.3.3 前端、后端和云计算服务分层开发 28
2.4 大型网站技术架构的核心问题 30
2.4.1 性能问题 30
2.4.2 可用性问题 30
2.4.3 伸缩性问题 31
2.4.4 扩展性问题 31
2.4.5 安全性问题 32
2.5 小结 32
第2篇 大型网站架构的技术细节
第3章 前端架构 34
3.1 前端的工作原理 34
3.1.1 Web服务器搭建 34
3.1.2 构造一个简单的网页 38
3.1.3 前端网页的工作原理 41
3.2 前端架构需要解决的问题 47
3.2.1 规整化概述 47
3.2.2 适配性和兼容性概述 49
3.2.3 模块化概述 50
3.2.4 单页应用概述 51
3.3 规整化 53
3.3.1 编码规范 53
3.3.2 JavaScript库 59
3.3.3 组件工具箱 61
3.3.4 框架 64
3.4 适配性和兼容性 71
3.4.1 响应式布局 71
3.4.2 整体布局 73
3.4.3 模块布局 77
3.4.4 适配性测试 78
3.4.5 浏览器兼容 79
3.5 模块化 81
3.5.1 模块化的方法 82
3.5.2 现今前端模块化的困局 86
3.5.3 自研框架Trick 87
3.6 单页应用 88
3.6.1 单页应用用到的方法 88
3.6.2 单页应用的发展趋势 90
3.7 小结 91
第4章 后端架构 92
4.1 后端的工作原理 92
4.1.1 后端开发语言及框架 92
4.1.2 搭建Web应用服务器 94
4.1.3 构造一个简单的后端应用程序 105
4.1.4 后端应用程序的工作原理 114
4.2 后端架构需要解决的问题 120
4.2.1 规整化概述 121
4.2.2 数据库概述 122
4.2.3 非关系型数据库概述 122
4.2.4 整合其他应用程序 123
4.3 规整化 124
4.3.1 接口设计 124
4.3.2 编码规范 132
4.3.3 集中配置 140
4.3.4 Cookie和Session 145
4.3.5 应用拆分和协调 148
4.3.6 日志 149
4.3.7 自研框架Once 159
4.4 数据库 161
4.4.1 数据库对比 161
4.4.2 数据库的工作原理 162
4.4.3 数据库设计 164
4.4.4 数据库操作框架 168
4.4.5 数据库事务 175
4.4.6 分布式事务 178
4.5 非关系型数据库 188
4.5.1 键值存储非关系型数据库 188
4.5.2 列存储非关系型数据库 190
4.5.3 文档型非关系型数据库 191
4.5.4 图形非关系型数据库 191
4.6 小结 192
第5章 云计算服务架构 193
5.1 云计算服务的工作原理 193
5.1.1 云计算服务的应用场景 193
5.1.2 云计算开发语言及其框架 194
5.1.3 云计算服务软件的工作原理 195
5.2 云计算服务架构需要解决的问题 200
5.2.1 云计算服务软件基础框架构建概述 201
5.2.2 任务池与指令池的搭建和使用概述 202
5.2.3 进度数据池与状态数据池的搭建和使用概述 202
5.2.4 监控软件的构造概述 202
5.3 云计算服务软件基础框架的构建 203
5.3.1 进程与线程 203
5.3.2 线程同步 205
5.3.3 线程模型 211
5.3.4 软件结构 218
5.4 任务池与指令池的搭建和使用 219
5.4.1 消息队列 219
5.4.2 RabbitMQ消息队列 221
5.4.3 任务池的搭建与使用 232
5.4.4 指令池的搭建与使用 234
5.5 进度数据池与状态数据池的搭建和使用 237
5.5.1 公共数据空间 237
5.5.2 Redis数据库 239
5.5.3 进度数据池的搭建与使用 247
5.5.4 状态数据池的搭建与使用 248
5.6 监控软件的构造 249
5.6.1 软件结构 249
5.6.2 Supervisor监控软件 253
5.7 小结 254
第6章 整体架构 255
6.1 网站系统的基本结构 255
6.1.1 前端部分的基本结构 255
6.1.2 后端部分的基本结构 257
6.1.3 云计算服务部分的基础结构 258
6.1.4 网站系统的基本结构 259
6.2 整体架构需要解决的问题 260
6.2.1 性能概述 260
6.2.2 可用性概述 260
6.2.3 伸缩性概述 261
6.2.4 扩展性概述 261
6.2.5 安全性概述 261
6.3 性能 262
6.3.1 性能指标 262
6.3.2 压力测试 266
6.3.3 性能调优的基本思路 271
6.3.4 服务器性能调优 274
6.3.5 Nginx调优 280
6.3.6 CDN加速 283
6.3.7 浏览器访问页面的过程优化 284
6.3.8 Tomcat调优 285
6.3.9 缓存与静态文件 287
6.3.10 数据库性能优化 288
6.3.11 数据库集群 289
6.3.12 分布式文件系统 293
6.3.13 集群部署与分布式部署 294
6.4 可用性 297
6.4.1 服务器的定期维护与监控 297
6.4.2 服务器热备份 298
6.4.3 日志机制 299
6.4.4 环境分离与灰度发布 299
6.5 伸缩性 300
6.5.1 伸缩指标与伸缩策略 300
6.5.2 动态弹性伸缩的局限 300
6.6 安全性 301
6.6.1 安全堡垒机 301
6.6.2 接口鉴权 302
6.6.3 SQL盲注 302
6.6.4 跨域 303
6.7 小结 305
第3篇 大型网站架构实战案例
第7章 单点登录系统架构设计 308
7.1 单点登录系统的关键问题 308
7.1.1 为什么需要单点登录系统 308
7.1.2 单点登录系统需要解决的关键问题 309
7.2 单点登录系统的详细架构设计 310
7.2.1 统一的登录与注册入口 310
7.2.2 与其他子系统共享用户登录信息 311
7.2.3 集中管理用户的基本信息 312
7.3 小结 313
第8章 媒体库管理系统架构设计 314
8.1 媒体库管理系统的关键问题 314
8.1.1 为什么需要媒体库管理系统 314
8.1.2 媒体库管理系统需要解决的关键问题 315
8.2 媒体库管理系统的详细架构设计 315
8.2.1 统一的媒体文件上传入口和资源选择机制 316
8.2.2 媒体文件的删除机制 317
8.2.3 提供自动处理媒体文件等功能 318
8.3 小结 319
第9章 直播系统架构设计 320
9.1 直播系统的关键问题 320
9.1.1 为什么需要直播系统 320
9.1.2 直播系统需要解决的关键问题 321
9.2 直播系统的详细架构设计 321
9.2.1 明确直播场景 321
9.2.2 基础系统架构 322
9.2.3 直播流接收 323
9.2.4 直播流处理 323
9.2.5 直播观看 325
9.3 小结 326
第4篇 未来架构的设想
第10章 未来架构 328
10.1 理解架构 328
10.1.1 架构是什么 328
10.1.2 顶层架构 332
10.1.3 架构与技术 333
10.2 软件行业的发展 334
10.2.1 软件行业的现状 334
10.2.2 软件行业的发展方向 334
10.2.3 不断发展的结局 334
10.3 未来架构的方向 335
10.3.1 人力效率增加 335
10.3.2 人力资本转化成物力资本 336
10.3.3 物力资本汇聚成生态 337
10.4 小结 338