图书介绍
大规模Web服务开发技术2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- (日)伊藤直也,(日)田中慎司著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121138843
- 出版时间:2011
- 标注页数:336页
- 文件大小:109MB
- 文件页数:355页
- 主题词:网络编程
PDF下载
下载说明
大规模Web服务开发技术PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 大规模Web服务的开发定位——掌握整体2
第0课 本书的起源——本书讲述的范围3
从事大规模Web服务开发——面向大学生的Hatena实习3
本书讲述的内容3
本书不讲述的内容5
致今后从事大规模Web服务的人5
第1课 大规模服务和小规模服务6
Hatena的服务规模6
Hatena是大规模,Google、Facebook是超大规模8
小规模服务和大规模服务的区别9
应对大规模数据量11
第2课 持续增长的服务和大规模化的障碍13
Web服务的困难13
Hatena的成长经历13
系统增长战略——最小化开端、预见变化的管理和设计17
第3课 服务开发现场18
Hatena的技术团队体制18
Hatena的沟通方式19
服务开发的实际状况19
开发所用的工具21
总结23
第2章 大规模数据处理入门——内存和磁盘、Web应用程序和负载24
第4课 Hatena Bookmark的数据规模25
以Hatena Bookmark为例介绍大规模数据25
Hatena Bookmark的数据规模25
针对大规模数据的查询——处理大规模数据的感觉26
第5课 大规模数据处理的难点——内存和磁盘28
为何处理大规模数据如此困难——因为无法在内存中计算28
内存和磁盘的速度差异——内存要快105~106倍28
为何磁盘这么慢?——内存和磁盘29
操作系统层的加速处理31
传输速度和总线的速度差异31
第6课 可扩展性的要点37
扩展和可扩展性37
可扩展性的要点——CPU负载和I/O负载38
Web应用程序和负载的关系38
数据库的可扩展性很难保证39
第7课 处理大规模数据的基础知识44
面向程序员的大规模数据的基础44
处理大规模数据的三个重点——写程序的技巧44
处理大规模数据之前的三大前提知识——程序开发的底层基础45
第3章 操作系统的缓存和分布式——高效处理大规模数据的原理50
第8课 操作系统的缓存机制51
在理解操作系统缓存的基础上编写应用程序——页面缓存51
虚拟内存机制52
Linux页面缓存原理54
VFS56
Linux以页面为单位缓存磁盘57
内存空闲时就缓存——通过sar确认59
增加内存降低I/O负载60
页面缓存是透明的61
第9课 降低I/O负载的策略67
以缓存为前提的降低I/O负载的策略67
扩展到多台服务器——无法全部缓存的情况68
单纯增加数量无法保证可扩展性69
第10课 利用局部性的分布式74
什么是利用局部性的分布式?74
Partitioning——考虑局部性的分布式175
根据访问模式分割成“岛”——考虑局部性的分布式278
以页面缓存为前提的基本应用规则79
第4章 数据库的横向扩展策略——以分布式为基础的MySQL应用82
第11课 正确应用索引——分布式MySQL应用的大前提83
分布式MySQL应用的三大要点83
1灵活应用操作系统缓存83
索引的重点——B树86
索引的效果89
确认索引是否有效的方法——explain命令92
第12课 MySQL的分布式——以扩展为前提的系统设计95
MySQL的replication功能95
master/slave的特征——对参照系进行扩展,更新类不扩展96
第13课 MySQL的横向扩展和Partitioning99
MySQL的横向扩展策略99
关于Partitioning(表分割)的补充99
以Partitioning为前提的设计99
避免JOIN——利用where…in102
Partitioning的代价103
第2~4章的小结107
第5章 大规模数据处理“实践”入门——应用程序开发的重点108
第14课 特殊用途索引——处理大规模数据109
索引和系统架构——超过RDBMS的处理能力时109
特殊用途索引——使用调优后的数据结构111
第15课 理论联系实践115
探寻必须的技术条件115
第2~5章小结117
第6章 压缩编程——考虑数据大小和I/O加速之间的关系118
第16课[课题]以紧凑、简洁方式保存整数数据119
以紧凑方式保存整数数据119
出题意图——解决该课题有什么好处?119
课题所用文件的内容121
第17课 可变字节码和速度的感觉122
可变字节码——用紧凑格式保存整数数据122
可变字节码的伪代码123
用“差”存储已排序整数126
(补充1)压缩的基础126
(补充2)压缩对象是整数的情形——背景理论127
第18课 课题详解及解答范例129
课题详解129
(参考1)pack()函数——将Perl内部数据结构以二进制形式输出131
(参考2)二进制数据的read/write133
(参考3)性能分析135
解答范例和思路136
第7章 算法实用化——从身边的例子来看理论、研究的实践投入142
第19课 算法和算法评测143
数据规模和复杂度的差异143
何谓算法?144
学习算法的意义——计算机资源有限,工程师的通用语言145
算法评测——复杂度记法146
纸巾能折叠几次?——O(logn)和O(n)的差距148
算法和数据结构——千丝万缕的联系149
复杂度和常数项——评测很重要150
应用算法的实际情况——简单就是美151
灵活应用第三方实现——CPAN等153
通过实例加深感受155
第20课 Hatena Diary的关键字链接156
什么是关键字链接?156
最初的实现156
出问题了!——关键字字典越来越大157
用模式匹配实现关键字链接的问题158
从正则表达式到Trie——改变匹配的实现方式158
Aho-Corasick算法160
换成Regexp::List162
关键字链接的实现、变迁和考察163
第21课 Hatena Bookmark的文章分类164
什么是文章分类?164
机器学习和大规模数据165
大规模数据和Web服务——The Google Way of Science166
贝叶斯过滤器的原理167
算法实用化之路——Hatena Bookmark的实例170
防守姿态和进攻姿态——从文档分类功能说开去171
第8章 Hatena关键字链接的实现——理解通向应用之路176
第22课 [课题]创建Hatena关键字链接177
使用Aho-Corasick算法创建Hatena关键字链接177
编写测试180
第23课 解答范例和思路182
解答范例182
第9章 挑战全文搜索技术——各种各样的大规模数据处理经验技巧184
第24课 全文搜索技术的应用范围185
用Hatena的数据创建搜索引擎185
Hatena Diray的全文搜索——搜索服务之外的搜索系统185
Hatena Bookmark的全文搜索——满足细节要求的系统187
第25课 搜索系统的架构190
搜索系统所需的步骤190
各种各样的搜索引擎191
全文搜索的种类193
第26课 搜索引擎的内部结构198
逆向索引的结构——Dictionary+Postings198
Dictionary的创建方法——逆向索引的创建方法1200
小结210
Postings的创建方法——逆向索引的创建方法2211
关于评分的补充213
参考文献214
第10章 创建全文搜索引擎——基本部分、改进、速度和准确度的要求216
第27课 [课题]创建Hatena Bookmark全文搜索217
开发全文搜索引擎217
课题内容217
示例数据格式和数据大小218
字典的组成——Dictionary、Posting219
界面220
基础部分+改进220
以速度和准确度一决胜负221
第28课 答案范例和思路223
解答范例223
indexer.pl的实现223
searcher.pl的实现225
可以改善的地方227
第11章 支持大规模数据处理的服务器/基础设施入门——Web服务的后台230
第29课 企业软件vs.Web服务231
企业软件vs.Web服务——应用范围上的差异231
Web服务的基础设施——三个重点233
第30课 云vs.自行构建基础设施235
云计算235
云的优缺点235
Hatena应用的云服务236
自行构筑基础设施的优点237
自行构建基础设施和垂直结合模型239
Hatena的服务规模240
Hatena Bookmark的系统架构图240
第12章 保证可扩展性的必要思路——规模扩大和系统扩展242
第31课 层和可扩展性243
对可扩展性的要求——一台服务器能处理的流量极限243
各层的可扩展性244
第32课 掌握负载进行调优245
掌握负载——可视化的管理界面245
测量负载的指标——平均负载、内存和CPU相关信息247
根据用途进行调优——面向用户的服务器和面向爬虫的服务器247
应用程序服务器、数据库服务器的调优策略和服务器数量249
服务规模和调优250
保证可扩展性251
第13章 保证冗余性和系统的稳定化——实现100%在线率的原理252
第33课 保证冗余性253
保证冗余性——应用程序服务器253
保证冗余性——数据库服务器254
保证冗余性——存储服务器257
第34课 系统稳定化261
保持系统稳定的权衡261
系统的不稳定因素262
第35课 系统稳定对策267
实际的系统稳定对策——维持适当余量,消灭不稳定因素267
第14章 提高效率——提高硬件资源的使用率270
第36课 虚拟化技术271
引入虚拟化技术271
虚拟化技术的效果272
虚拟服务器的构建策略273
总结虚拟化的优势275
虚拟化和运营——通过服务器管理工具在运营上发挥虚拟化的优势276
虚拟化的注意点277
第37课 硬件和提高效率——实现低成本的关键技术280
提高处理器性能280
内存和硬盘成本下降281
有效利用廉价硬件——以虚拟化为前提的硬件应用282
SSD284
第15章 Web服务和网络——通过网络看服务增长288
第38课 网络的分界点289
服务增长和网络的分界点289
1Gbps的极限——PC路由器的极限289
500台主机的极限——子网、ARP表的极限290
网络架构的层次化291
全球化292
第39课 挑战更高的极限295
超越10Gbps的世界295
Hatena的基础设施——第11~15章的总结296
第16章 特别篇 当前构建Web服务需要的实践技术——应对大规模Web服务须知298
特别篇第1课 作业队列系统TheSchwartz、Gearman299
Web服务和请求299
作业队列系统入门299
Hatena的作业队列系统300
通过日志进行分析302
特别篇第2课 存储方式的选择RDBMS还是key-value存储303
如何保存不断增加的数据303
选择存储系统的前提条件304
存储系统的种类305
RDBMS305
分布式key-value存储308
分布式文件系统310
其他存储312
存储系统的选择策略314
特别篇第3课 缓存系统——Squid、Varnish315
Web应用程序负载与代理/缓存系统315
Squid——基本结构317
Vamish321
特别篇第4课 计算集群——Hadoop323
大量日志数据的并行处理323
MapReduce计算模型323
Hadoop325
索引327
热门推荐
- 1772066.html
- 1638839.html
- 3526743.html
- 2580719.html
- 506582.html
- 1647703.html
- 1316979.html
- 2690559.html
- 1515858.html
- 3653099.html
- http://www.ickdjs.cc/book_2233914.html
- http://www.ickdjs.cc/book_3465368.html
- http://www.ickdjs.cc/book_3385998.html
- http://www.ickdjs.cc/book_3340404.html
- http://www.ickdjs.cc/book_3662729.html
- http://www.ickdjs.cc/book_3453453.html
- http://www.ickdjs.cc/book_3044420.html
- http://www.ickdjs.cc/book_2163005.html
- http://www.ickdjs.cc/book_1974182.html
- http://www.ickdjs.cc/book_1261245.html