摘要 | 第4-5页 |
ABSTRACT | 第5页 |
第一章 引言 | 第10-12页 |
1.1 课题背景 | 第10页 |
1.2 课题任务 | 第10-11页 |
1.2.1 课题内容 | 第10页 |
1.2.2 本人承担任务 | 第10-11页 |
1.3 论文结构 | 第11-12页 |
第二章 万维网,并发,伸缩性及常用组件 | 第12-17页 |
2.1 基础知识 | 第12-14页 |
2.1.1 Web基本概念概述 | 第12-13页 |
2.1.2 并发性 | 第13-14页 |
2.1.3 可伸缩性 | 第14页 |
2.2 可伸缩web架构中的常用组件介绍 | 第14-16页 |
2.3 本章小结 | 第16-17页 |
第三章 高性能web服务器架构中的并发模式 | 第17-25页 |
3.1 概述 | 第17-21页 |
3.1.1 web请求的处理流程 | 第17页 |
3.1.2 c10K问题 | 第17-18页 |
3.1.3 I/O操作模型 | 第18-21页 |
3.2 常用web服务器架构 | 第21-24页 |
3.2.1 基于线程的web服务器架构 | 第21-22页 |
3.2.2 基于事件驱动的web服务器架构 | 第22-23页 |
3.2.3 混合模式的web服务器架构 | 第23-24页 |
3.3 本章小结 | 第24-25页 |
第四章 应用业务逻辑中的并发模式 | 第25-38页 |
4.1 概述 | 第25页 |
4.2 基于线程,锁,共享状态的并发模式 | 第25-28页 |
4.2.1 共享和可变状态的含义 | 第25-26页 |
4.2.2 案例分析:Java中的并发 | 第26-27页 |
4.2.3 基于线程和锁的并发业务逻辑 | 第27-28页 |
4.3 基于软件事务内存的并发模式 | 第28-32页 |
4.3.1 软件事务内存的含义 | 第28-29页 |
4.3.2 案例分析:Clojure中的并发 | 第29-31页 |
4.3.3 基于软件事务内存的并发业务逻辑 | 第31-32页 |
4.4 基于角色的并发模式 | 第32-34页 |
4.4.1 角色模型 | 第32-33页 |
4.4.2 案例分析:Scala中的并发 | 第33-34页 |
4.4.3 基于软件事务内存的并发业务逻辑 | 第34页 |
4.5 基于事件驱动的并发模式 | 第34-37页 |
4.5.1 事件驱动架构 | 第34-35页 |
4.5.2 案例分析:Node.js中的并发 | 第35-36页 |
4.5.3 基于事件驱动的并发业务逻辑 | 第36-37页 |
4.6 本章小结 | 第37-38页 |
第五章 后端存储中的并发模式 | 第38-47页 |
5.1 概述 | 第38页 |
5.2 分布式数据库的挑战 | 第38页 |
5.3 分布式数据库系统的类型 | 第38-46页 |
5.3.1 关系型数据库系统 | 第38-40页 |
5.3.2 非关系型数据库系统 | 第40-46页 |
5.4 本章小结 | 第46-47页 |
第六章 编程实现与测试 | 第47-72页 |
6.1 概述 | 第47页 |
6.2 用Ruby实现一个基于多线程和事件驱动混合模式的web服务器 | 第47-54页 |
6.2.1 开发环境及工具 | 第47页 |
6.2.2 代码讲解 | 第47-53页 |
6.2.3 测试说明 | 第53-54页 |
6.3 用Java实现一个基于多线程模式的大规模feed系统应用业务逻辑 | 第54-65页 |
6.3.1 大规模feed系统简介 | 第54-56页 |
6.3.2 开发环境及工具 | 第56页 |
6.3.3 核心代码详解 | 第56-63页 |
6.3.4 测试代码说明 | 第63-65页 |
6.4 用MySQL集群实现一个大规模feed系统的后端存储 | 第65-71页 |
6.4.1 大规模feed系统的后端存储简介 | 第65页 |
6.4.2 开发环境及工具 | 第65页 |
6.4.3 核心代码及架构详解 | 第65-71页 |
6.4.4 测试代码说明 | 第71页 |
6.5 本章小结 | 第71-72页 |
第七章 选择合适的并发模式 | 第72-76页 |
7.1 概述 | 第72页 |
7.2 选择合适的web服务器架构 | 第72页 |
7.3 选择适合应用业务逻辑的并发策略 | 第72-73页 |
7.4 选择合适的后端存储架构 | 第73-74页 |
7.5 本章小结 | 第74-76页 |
第八章 结束语 | 第76-78页 |
8.1 论文工作总结 | 第76页 |
8.2 问题和展望 | 第76-78页 |
参考文献 | 第78-79页 |
致谢 | 第79页 |