-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

高性能架構之道:分布式、并發編程、數據庫調優、緩存設計、IO模型、前端優化、高可用

( 簡體 字)
作者:易哥類別:1. -> 程式設計 -> 綜合
譯者:
出版社:電子工業出版社高性能架構之道:分布式、并發編程、數據庫調優、緩存設計、IO模型、前端優化、高可用 3dWoo書號: 54120
詢問書籍請說出此書號!

缺書
NT售價: 445

出版日:3/1/2021
頁數:292
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121404870
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

近年來,隨著移動互聯網的蓬勃發展,數字經濟迎來爆發式增長。百花齊放的互聯網服務已經潛移默化地滲透到人們衣、食、住、行的方方面面。軟件服務的運行質量,已經不僅僅影響著用戶體驗,更成為關系到社會民生的大事。
從信息化、數字化時代邁入智能化時代,軟件系統架構也是不斷演進的,從傳統的單體式,發展到SOA,再到微服務,乃至如今火熱的云原生。在不斷地以技術創新驅動業務創新的同時,所面臨的技術挑戰也在與日俱增。對于高并發、大流量的互聯網分布式系統來說,一個微小的技術方案差異,就可能導致性能表現天壤之別。而性能問題不僅僅帶來了運行成本的增加,更是系統穩定性的隱患。
構建高性能、高可靠的軟件系統,是無數開發者的不懈追求。然而軟件架構設計是一項高度依賴理論知識體系與工程實踐經驗的工作,如果沒有合適的學習渠道,往往進步緩慢。
本書作者對軟件性能有著獨到見解,在軟件架構設計、性能保障方面均有豐富經驗。本書首先站在體系化的理論高度,從軟件質量的特性維度出發,推導出軟件性能的度量模型,解答了“什么是高性能軟件架構”。并且結合多年經驗,貫穿完整技術棧介紹了提升軟件架構性能的知識與技巧。最后用一個實戰案例,幫助讀者充分消化理解所學的知識。這是一本值得廣大技術愛好者與從業者品讀學習的好書。
童庭堅
PerfMa首席技術官
TVP騰訊云最具價值專家
中商聯智庫顧問
?
2019年我出版了《通用源碼閱讀指導書——MyBatis源碼詳解》一書,向大家分享源碼閱讀相關的知識和技巧。書籍面市后,收到了不錯的反響,有的讀者表示學到了許多的編程知識,有的讀者表示透徹理解了MyBatis的源碼,有的讀者表示終于邁入了源碼閱讀的大門。繁體版也在臺灣地區上市了,這讓我感覺每個坐在電腦前十指連彈的夜都是值得的。
然而,我也發現很多開發者在進行軟件架構設計時缺乏體系化的思維,只能在試錯、總結中不斷摸索提升,痛苦而緩慢。而且,這種提升方式容易留下知識盲區。可是這些問題都很難通過源碼閱讀來補足。
因此,我決定寫一本體系化的架構書籍分享給大家。書籍中不僅要包含理論知識、實踐技巧、工程方案,更要將這些知識體系化地連接起來,以幫助大家建立一個完備的知識體系。這就是我寫作本書的原因。
在本書中,我們將從“高性能架構”這一點出發,系統地介紹高性能架構相關的各個方面。
書中涉及很多理論知識,我盡量通過示例使得它們簡單易懂;書中有很多架構技巧,我盡量通過總結使得它們清晰明了。在本書的最后,還會以書中的架構體系為依據,開發一套高性能的分布式權限系統。
從理論知識到架構技巧,再到項目實踐,本書力求給出一套完整的知識體系,指引大家完成高性能系統的架構設計。
第1章介紹了高性能和架構這兩個概念。包括高性能代表的具體指標,架構的具體含義與主要內容。
第2章介紹了分流設計。即如何使用內容分發網絡、多地址直連、反向代理等手段將用戶的請求分散到不同的系統上,從而降低每個系統的并發數。
第3章介紹了與服務并行相關的設計。首先,介紹了并行與并發的概念。其次,在此基礎上介紹了集群系統、分布式系統、微服務系統。包括各類系統的特點、實現難點等。服務并行設計能夠進一步將系統內的請求進行分流,從而提升系統性能。
第4章介紹了多進行、多線程、多協程等運算并發手段,并給出了相應的實例。尤其是對常見的多線程進行了深入介紹,包括線程的狀態轉換、應用場景、使用方法、協作方法等。通過運算并發設計,能夠顯著提升系統的并發能力。
第5章介紹了輸入輸出設計。首先介紹了IO的分類維度、層級。然后詳細介紹了常見的五種IO模型,包括這些模型之間的演化邏輯,并給出了這些模型的實際使用示例。
第6章介紹了數據庫設計與優化手段。從最基本的關系型數據庫設計開始,介紹了關系型數據庫設計的設計范式、反范式。在此基礎上,還介紹了各類索引的原理、使用條件,各類鎖的特點,死鎖的產生與解除,事務及其隔離級別等。在章節的最后還介紹了面向巨量存儲數據時數據庫該如何優化,以及一些非傳統的數據庫和數據庫中間件。
第7章介紹了緩存設計的方法和技巧。這一章從緩存的收益說起,推導提升緩存收益的方法。然后在此基礎上,給出了提升緩存收益的具體實施手段,包括緩存要素的設計、更新機制的設計、清理機制的設計、風險點的處理、位置的設計等。最后還介紹了寫緩存的收益計算和實踐方案。
第8章介紹了系統可靠性設計的相關知識。首先,介紹了可靠性的概念與具體的衡量指標。其次,在此基礎上介紹了提升系統可靠性的手段。這一章將幫助我們構建高可靠性的系統。
第9章介紹了應用保護的基礎知識和實踐手段。這些知識和手段能提升應用在突發狀況下的工作狀況。
第10章介紹了前端高性能的相關知識。這是一個相對獨立的一章。首先,分析了前端工作過程中的性能關鍵點。其次,針對這些關鍵點給出了前端性能優化的手段。具有較強的概括性和指導性。
第11章介紹了架構設計中架構設計風格和軟件生命周期這兩個方面的基礎知識。這些知識將指導我們體系化地進行軟件架構工作。
第12章是一個項目實踐。本章以前面各章介紹的高性能架構知識為依據,完整地開展了一個高性能軟件系統的架構工作,包括理論推導、模型設計、概要設計、詳細設計等各個環節,向讀者展示了一個完整的高性能架構過程。本章的內容能幫助讀者學會如何在實踐中靈活運用前面各章的知識。
本書力求理論聯系實踐,既給出了高性能架構的相關理論與推導,又給出了具體的實施策略與技巧,還通過項目實踐完成了一個高性能軟件的架構設計。希望大家在閱讀本書后,能夠建立高性能架構領域的完整知識體系。
致謝
書籍的寫作出版要經歷很長的過程,從規劃到研究,從初稿到終稿,從編輯到面市。在這個過程中,我要感謝許多人。其間,我得到了領導的大力支持和鼓勵,得到了業內專家的審閱和指導,也得到了國內外學術及工程領域多位朋友的幫助。性能領域的資深專家童庭堅在百忙中審閱了書籍初稿,并為本書作序。電子工業出版社的眾多編輯也為本書傾力付出。
信息技術浪潮帶來了巨大的機會,作為軟件開發者的你我有幸站到了這一機會面前,我們每個人都應該做出自己的一份貢獻,或偉大,或渺小,為自己,為社會。
真心希望本書能夠給你帶來架構能力和軟件開發能力的提升。
加油,愿你我早日成為自己的燦爛星辰!

易哥
2020年10月于上海
內容簡介:

本書是一本理論聯系實際的軟件架構設計指導書,旨在幫助讀者完成高性能軟件系統的架構設計工作。書中涉及分布式、并發編程、數據庫調優、緩存、IO、前端性能優化等方面的理論知識,并在理論知識的基礎上推導其實踐技巧。本書最后還運用書中知識完成了一個實際軟件項目的架構設計工作。本書適合軟件架構師、工程師、學生閱讀,以幫助其完善軟件開發知識體系和提升其軟件架構設計能力。
目錄:

第1章 高性能架構 001
1.1 軟件架構 001
1.2 軟件的質量 003
1.3 高性能概述 004
1.4 軟件性能指標 005
1.4.1 吞吐量 006
1.4.2 并發數 006
1.4.3 平均響應時間 007
1.4.4 可靠性指標 008
1.5 性能指標之間的關系 009
1.5.1 并發數對吞吐量的影響 009
1.5.2 并發數對平均響應時間的影響 011
1.5.3 平均響應時間對并發數的影響 012
1.5.4 可靠性指標與其他指標的關系 013
1.6 高性能架構總結 013
第2章 分流設計 014
2.1 內容分發網絡 014
2.1.1 內容分發網絡的結構 015
2.1.2 內容分發網絡的原理 017
2.2 多地址直連 019
2.3 反向代理 021
第3章 服務并行設計 026
3.1 并行與并發 026
3.2 集群系統 028
3.2.1 無狀態的節點集群 028
3.2.2 單一服務節點集群 029
3.2.3 信息共享的節點集群 031
3.2.4 信息一致的節點集群 032
3.3 分布式系統 034
3.4 微服務系統 036
第4章 運算并發 038
4.1 多進程 038
4.2 多線程 039
4.2.1 線程的狀態及轉換 039
4.2.2 多線程的應用場景 041
4.2.3 多線程的創建 042
4.2.4 線程池 046
4.2.5 多線程資源協作 050
4.2.6 多線程進度協作 056
4.3 多協程 069
4.4 運算并發總結 072
第5章 輸入輸出設計 074
5.1 概念梳理 074
5.1.1 同步與異步 074
5.1.2 阻塞與非阻塞 075
5.2 IO模型 077
5.3 IO模型的層級關系 078
5.4 阻塞式IO模型 079
5.5 非阻塞式IO模型 081
5.6 信號驅動式IO模型 082
5.7 復用式IO模型 083
5.8 異步式IO模型 086
5.9 輸入輸出模型總結 088
第6章 數據庫設計與優化 090
6.1 數據庫設計概述 090
6.2 關系型數據庫設計 091
6.2.1 設計范式介紹 093
6.2.2 反范式設計 101
6.3 索引原理與優化 102
6.3.1 索引的原理 103
6.3.2 索引生效分析 107
6.3.3 索引的使用 109
6.3.4 索引的利弊 116
6.4 數據庫引擎 116
6.5 數據庫鎖 117
6.5.1 樂觀鎖 118
6.5.2 悲觀鎖 119
6.6 死鎖 120
6.7 事務 122
6.7.1 事務并發導致的問題 123
6.7.2 事務隔離級別 124
6.7.3 自建事務 126
6.8 巨量數據的優化 128
6.8.1 表分區 128
6.8.2 分庫分表 132
6.8.3 讀寫分離 134
6.9 非傳統數據庫 138
6.9.1 內存數據庫 139
6.9.2 列存儲數據庫 140
6.9.3 面向對象數據庫 140
6.9.4 文檔數據庫 140
6.9.5 圖數據庫 141
6.10 數據庫中間件 141
第7章 緩存設計 143
7.1 緩存的收益 143
7.2 緩存的鍵與值 145
7.2.1 緩存的鍵 145
7.2.2 緩存的值 149
7.3 緩存的更新機制 151
7.3.1 時效性更新機制 151
7.3.2 主動更新機制 152
7.4 緩存的清理機制 155
7.4.1 時效式清理 156
7.4.2 數目閾值式清理 157
7.4.3 非強引用式清理 161
7.4.4 清理策略使用實踐 164
7.5 緩存的風險點 165
7.5.1 緩存穿透 165
7.5.2 緩存雪崩 166
7.5.3 緩存擊穿 166
7.5.4 緩存預熱 167
7.6 緩存的位置 168
7.6.1 客戶端緩存 169
7.6.2 靜態緩存 172
7.6.3 服務緩存 173
7.6.4 數據庫緩存 173
7.7 寫緩存 174
7.7.1 寫緩存的收益問題 175
7.7.2 寫緩存實踐 175
第8章 可靠性設計 177
8.1 軟件可靠性概述 177
8.2 軟件可靠性指標 178
8.2.1 失效概率 178
8.2.2 失效強度 179
8.2.3 失效率 179
8.3 模塊連接方式與可靠性 179
8.3.1 串聯系統的可靠性 179
8.3.2 并聯系統的可靠性 180
8.3.3 冗余系統的可靠性 180
8.3.4 模塊連接方式的可靠性討論 181
8.4 軟件失效模型 181
8.5 可靠性設計 182
8.5.1 消除單點依賴 183
8.5.2 化串聯為并聯 183
8.5.3 采用集群 184
第9章 應用保護 185
9.1 應用保護概述 185
9.2 隔離 187
9.3 限流 189
9.3.1 時間窗限流法 189
9.3.2 漏桶限流法 190
9.3.3 令牌限流法 192
9.4 降級 193
9.5 熔斷 196
9.6 恢復 198
第10章 前端高性能 200
10.1 前端工作分析 200
10.1.1 前端加載過程 200
10.1.2 前端性能分析 201
10.2 資源下載優化 203
10.2.1 資源壓縮 203
10.2.2 減少請求 205
10.2.3 資源緩存 210
10.3 頁面解析優化 214
10.3.1 順應解析流程 214
10.3.2 應用新型前端框架 216
10.4 懶加載 216
10.5 預操作 217
第11章 架構設計理論 219
11.1 軟件架構風格 219
11.1.1 管道過濾器架構風格 220
11.1.2 面向對象架構風格 220
11.1.3 基于組件的架構風格 221
11.1.4 事件驅動架構風格 221
11.1.5 分層架構風格 221
11.1.6 C/S架構風格 222
11.1.7 三層C/S架構風格 223
11.1.8 B/S架構風格 224
11.2 軟件生命周期 225
11.2.1 需求階段 226
11.2.2 模型設計 227
11.2.3 概要設計 228
11.2.4 詳細設計 228
11.2.5 質量指標設計 229
11.2.6 方案預研 229
11.2.7 軟件開發 229
第12章 高性能架構實踐 231
12.1 需求概述 231
12.2 權限系統的相關理論 234
12.2.1 權限模型 234
12.2.2 訪問控制方式 240
12.3 模型設計 241
12.3.1 模型調研 241
12.3.2 模型應用 242
12.4 概要設計 249
12.5 數據層詳細設計 253
12.5.1 RBAC數據表的范式設計 253
12.5.2 RBAC數據表的反范式設計 254
12.5.3 RBAC數據表的最終設計 255
12.5.4 MatrixAuth管理類數據表設計 257
12.5.5 MatrixAuth的數據層結構 259
12.6 緩存詳細設計 260
12.7 服務端詳細設計 261
12.7.1 數據源動態切換 261
12.7.2 數據冗余的一致性保證 263
12.7.3 服務端的操作接口 263
12.8 客戶端詳細設計 265
12.8.1 可控角色的權限驗證 265
12.8.2 自由角色的權限驗證 267
12.8.3 用戶信息、角色關聯信息推送 268
12.9 MatrixAuth項目實踐總結 268
12.9.1 MatrixAuth的高性能設計 268
12.9.2 需求完成度分析 270
12.9.3 MatrixAuth的使用簡介 270
參考文獻 273
序: