注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡網(wǎng)絡與數(shù)據(jù)通信網(wǎng)絡組建與管理大規(guī)模Web服務開發(fā)技術(shù)

大規(guī)模Web服務開發(fā)技術(shù)

大規(guī)模Web服務開發(fā)技術(shù)

定 價:¥59.00

作 者: 李劍
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 網(wǎng)絡配置與管理

ISBN: 9787121138843 出版時間: 2011-07-01 包裝: 平裝
開本: 16開 頁數(shù): 356 字數(shù):  

內(nèi)容簡介

  《大規(guī)模Web服務開發(fā)技術(shù)》從操作系統(tǒng)和計算機的原理開始,介紹數(shù)據(jù)庫的分布式方法、實用算法在系統(tǒng)中的應用、能支撐海量數(shù)據(jù)的搜索引擎的原理,以及統(tǒng)觀系統(tǒng)全局的基礎設施設計的知識等多個方面。 這是擁有1500萬用戶的Hatena才能傳達的真實的、實踐性的技術(shù)和現(xiàn)場感。缺乏經(jīng)驗的學生們在短短幾天的培訓中學到大規(guī)模服務開發(fā)所需的知識,在本書中得以系統(tǒng)化。本書融匯了這些知識,努力做到妙趣橫生、百讀不厭,并讓讀者學到真正的知識。 希望本書能成為從事Web服務開發(fā)的所有工程師們的得力助手和工具。

作者簡介

  伊藤直也(Naoya Ito) Hatena株式會社董事兼CTO。合著作有《BlogHacks(0‘Reilly Japan)、《“24小時365天”服務器/基礎設施的支撐技術(shù)》(技術(shù)評論社)。曾獲情報處理學會主辦的“Software Japan 2009”的Software JapanAward獎,以及“樂天Technical Conference 2008”的Technology Award銀獎。 田中慎司(Shinji Tanaka) Hatena株式會社董事,信息學博士。合著有《“24小時365天”服務器/基礎設施的支撐技術(shù)》(技術(shù)評論社)一書,還主持過多本著作的翻譯。支撐著Hatena服務器的是由600多臺服務器構(gòu)成的系統(tǒng),現(xiàn)在這一系統(tǒng)的性能及設備運維由他全權(quán)負責。

圖書目錄

第1章  大規(guī)模Web服務的開發(fā)定位——掌握整體 2
第0課  本書的起源——本書講述的范圍 3
從事大規(guī)模Web服務開發(fā)——面向大學生的Hatena實習 3
本書講述的內(nèi)容 3
本書不講述的內(nèi)容 5
致今后從事大規(guī)模Web服務的人 5
第1課  大規(guī)模服務和小規(guī)模服務 6
Hatena的服務規(guī)模 6
Hatena是大規(guī)模,Google、Facebook是超大規(guī)模 8
小規(guī)模服務和大規(guī)模服務的區(qū)別 9
應對大規(guī)模數(shù)據(jù)量 11
第2課  持續(xù)增長的服務和大規(guī)?;恼系K 13
Web服務的困難 13
Hatena的成長經(jīng)歷 13
系統(tǒng)增長戰(zhàn)略——最小化開端、預見變化的管理和設計 17
第3課  服務開發(fā)現(xiàn)場 18
Hatena的技術(shù)團隊體制 18
Hatena的溝通方式 19
服務開發(fā)的實際狀況 19
開發(fā)所用的工具 21
總結(jié) 23
第2章  大規(guī)模數(shù)據(jù)處理入門
——內(nèi)存和磁盤、Web應用程序和負載 24
第4課  Hatena Bookmark的數(shù)據(jù)規(guī)模 25
以Hatena Bookmark為例介紹大規(guī)模數(shù)據(jù) 25
Hatena Bookmark的數(shù)據(jù)規(guī)模 25
針對大規(guī)模數(shù)據(jù)的查詢——處理大規(guī)模數(shù)據(jù)的感覺 26
第5課  大規(guī)模數(shù)據(jù)處理的難點——內(nèi)存和磁盤 28
為何處理大規(guī)模數(shù)據(jù)如此困難——因為無法在內(nèi)存中
計算 28
內(nèi)存和磁盤的速度差異——內(nèi)存要快105~106倍 28
為何磁盤這么慢?——內(nèi)存和磁盤 29
操作系統(tǒng)層的加速處理 31
傳輸速度和總線的速度差異 31
第6課  可擴展性的要點 37
擴展和可擴展性 37
可擴展性的要點——CPU負載和I/O負載 38
Web應用程序和負載的關系 38
數(shù)據(jù)庫的可擴展性很難保證 39
第7課  處理大規(guī)模數(shù)據(jù)的基礎知識 44
面向程序員的大規(guī)模數(shù)據(jù)的基礎 44
處理大規(guī)模數(shù)據(jù)的三個重點——寫程序的技巧 44
處理大規(guī)模數(shù)據(jù)之前的三大前提知識——程序開發(fā)的
底層基礎 45
第3章  操作系統(tǒng)的緩存和分布式
——高效處理大規(guī)模數(shù)據(jù)的原理 50
第8課  操作系統(tǒng)的緩存機制 51
在理解操作系統(tǒng)緩存的基礎上編寫應用程序——頁面
緩存 51
虛擬內(nèi)存機制 52
Linux頁面緩存原理 54
VFS 56
Linux以頁面為單位緩存磁盤 57
內(nèi)存空閑時就緩存——通過sar確認 59
增加內(nèi)存降低I/O負載 60
頁面緩存是透明的 61
第9課  降低I/O負載的策略 67
以緩存為前提的降低I/O負載的策略 67
擴展到多臺服務器——無法全部緩存的情況 68
單純增加數(shù)量無法保證可擴展性 69
第10課  利用局部性的分布式 74
什么是利用局部性的分布式? 74
Partitioning——考慮局部性的分布式 75
根據(jù)訪問模式分割成“島”——考慮局部性的分布式 78
以頁面緩存為前提的基本應用規(guī)則 79
第4章  數(shù)據(jù)庫的橫向擴展策略
——以分布式為基礎的MySQL應用 82
第11課  正確應用索引
——分布式MySQL應用的大前提 83
分布式MySQL應用的三大要點 83
靈活應用操作系統(tǒng)緩存 83
索引的重點——B樹 86
索引的效果 89
確認索引是否有效的方法——explain命令 92
第12課  MySQL的分布式
——以擴展為前提的系統(tǒng)設計 95
MySQL的replication功能 95
master/slave的特征——對參照系進行擴展,更新類
不擴展 96
第13課  MySQL的橫向擴展和Partitioning 99
MySQL的橫向擴展策略 99
關于Partitioning(表分割)的補充 99
以Partitioning為前提的設計 99
避免JOIN——利用where…in… 102
Partitioning的代價 103
第2~4章的小結(jié) 107
第5章  大規(guī)模數(shù)據(jù)處理“實踐”入門
——應用程序開發(fā)的重點 108
第14課  特殊用途索引——處理大規(guī)模數(shù)據(jù) 109
索引和系統(tǒng)架構(gòu)——超過RDBMS的處理能力時 109
特殊用途索引——使用調(diào)優(yōu)后的數(shù)據(jù)結(jié)構(gòu) 111
第15課  理論聯(lián)系實踐 115
探尋必須的技術(shù)條件 115
第2~5章小結(jié) 117
第6章  壓縮編程
——考慮數(shù)據(jù)大小和I/O加速之間的關系 118
第16課 [課題]以緊湊、簡潔方式保存整數(shù)數(shù)據(jù) 119
以緊湊方式保存整數(shù)數(shù)據(jù) 119
出題意圖——解決該課題有什么好處? 119
課題所用文件的內(nèi)容 121
第17課  可變字節(jié)碼和速度的感覺 122
可變字節(jié)碼——用緊湊格式保存整數(shù)數(shù)據(jù) 122
可變字節(jié)碼的偽代碼 123
用“差”存儲已排序整數(shù) 126
(補充)壓縮的基礎 126
(補充)壓縮對象是整數(shù)的情形——背景理論 127
第18課  課題詳解及解答范例 129
課題詳解 129
(參考)pack()函數(shù)——將Perl內(nèi)部數(shù)據(jù)結(jié)構(gòu)以
二進制形式輸出 131
(參考)二進制數(shù)據(jù)的read/write 133
(參考)性能分析 135
解答范例和思路 136
第7章  算法實用化
——從身邊的例子來看理論、研究的實踐投入 142
第19課  算法和算法評測 143
數(shù)據(jù)規(guī)模和復雜度的差異 143
何謂算法? 144
學習算法的意義——計算機資源有限,工程師的通用
語言 145
算法評測——復雜度記法 146
紙巾能折疊幾次?——O(logn)和O(n)的差距 148
算法和數(shù)據(jù)結(jié)構(gòu)——千絲萬縷的聯(lián)系 149
復雜度和常數(shù)項——評測很重要 150
應用算法的實際情況——簡單就是美 151
靈活應用第三方實現(xiàn)——CPAN等 153
通過實例加深感受 155
第20課  Hatena Diary的關鍵字鏈接 156
什么是關鍵字鏈接? 156
最初的實現(xiàn) 156
出問題了!——關鍵字字典越來越大 157
用模式匹配實現(xiàn)關鍵字鏈接的問題 158
從正則表達式到Trie——改變匹配的實現(xiàn)方式 158
Aho-Corasick算法 160
換成Regexp::List 162
關鍵字鏈接的實現(xiàn)、變遷和考察 163
第21課  Hatena Bookmark的文章分類 164
什么是文章分類? 164
機器學習和大規(guī)模數(shù)據(jù) 165
大規(guī)模數(shù)據(jù)和Web服務——The Google Way of Science 166
貝葉斯過濾器的原理 167
算法實用化之路——Hatena Bookmark的實例 170
防守姿態(tài)和進攻姿態(tài)——從文檔分類功能說開去 171
第8章  Hatena關鍵字鏈接的實現(xiàn)
——理解通向應用之路 176
第22課 [課題]創(chuàng)建Hatena關鍵字鏈接 177
使用Aho-Corasick算法創(chuàng)建Hatena關鍵字鏈接 177
編寫測試 180
第23課  解答范例和思路 182
解答范例 182
第9章  挑戰(zhàn)全文搜索技術(shù)
——各種各樣的大規(guī)模數(shù)據(jù)處理經(jīng)驗技巧 184
第24課  全文搜索技術(shù)的應用范圍 185
用Hatena的數(shù)據(jù)創(chuàng)建搜索引擎 185
Hatena Diray的全文搜索——搜索服務之外的搜索
系統(tǒng) 185
Hatena Bookmark的全文搜索——滿足細節(jié)要求的系統(tǒng) 187
第25課  搜索系統(tǒng)的架構(gòu) 190
搜索系統(tǒng)所需的步驟 190
各種各樣的搜索引擎 191
全文搜索的種類 193
第26課  搜索引擎的內(nèi)部結(jié)構(gòu) 198
逆向索引的結(jié)構(gòu)——Dictionary+Postings 198
Dictionary的創(chuàng)建方法——逆向索引的創(chuàng)建方法  200
小結(jié) 210
Postings的創(chuàng)建方法——逆向索引的創(chuàng)建方法  211
關于評分的補充 213
參考文獻 214
第10章  創(chuàng)建全文搜索引擎
——基本部分、改進、速度和準確度的要求 216
第27課 [課題]創(chuàng)建Hatena Bookmark全文搜索 217
開發(fā)全文搜索引擎 217
課題內(nèi)容 217
示例數(shù)據(jù)格式和數(shù)據(jù)大小 218
字典的組成——Dictionary、Postings 219
界面 220
基礎部分+改進 220
以速度和準確度一決勝負 221
第28課  答案范例和思路 223
解答范例 223
indexer.pl的實現(xiàn) 223
searcher.pl的實現(xiàn) 225
可以改善的地方 227
第11章  支持大規(guī)模數(shù)據(jù)處理的服務器/基礎設施入門
—— Web服務的后臺 230
第29課  企業(yè)軟件vs. Web服務 231
企業(yè)軟件vs. Web服務——應用范圍上的差異 231
Web服務的基礎設施——三個重點 233
第30課  云vs.自行構(gòu)建基礎設施 235
云計算 235
云的優(yōu)缺點 235
Hatena應用的云服務 236
自行構(gòu)筑基礎設施的優(yōu)點 237
自行構(gòu)建基礎設施和垂直結(jié)合模型 239
Hatena的服務規(guī)模 240
Hatena Bookmark的系統(tǒng)架構(gòu)圖 240
第12章  保證可擴展性的必要思路
——規(guī)模擴大和系統(tǒng)擴展 242
第31課  層和可擴展性 243
對可擴展性的要求——一臺服務器能處理的流量極限 243
各層的可擴展性 244
第32課  掌握負載進行調(diào)優(yōu) 245
掌握負載——可視化的管理界面 245
測量負載的指標——平均負載、內(nèi)存和CPU相關信息 247
根據(jù)用途進行調(diào)優(yōu)——面向用戶的服務器和面向爬蟲
的服務器 247
應用程序服務器、數(shù)據(jù)庫服務器的調(diào)優(yōu)策略和服務器
數(shù)量 249
服務規(guī)模和調(diào)優(yōu) 250
保證可擴展性 251
第13章  保證冗余性和系統(tǒng)的穩(wěn)定化
——實現(xiàn)100%在線率的原理 252
第33課  保證冗余性 253
保證冗余性——應用程序服務器 253
保證冗余性——數(shù)據(jù)庫服務器 254
保證冗余性——存儲服務器 257
第34課  系統(tǒng)穩(wěn)定化 261
保持系統(tǒng)穩(wěn)定的權(quán)衡 261
系統(tǒng)的不穩(wěn)定因素 262

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號