|
|
|
|
|
|
|
|
ISBN |
9787111732891 |
定价 |
RMB109.00 |
售价 |
RM119.90 |
优惠价 |
RM83.93 * (-30%)
|
作者 |
郭進
|
出版社 |
機械工業出版社
|
出版日期 |
2023-08-01 |
装订 |
平裝. 無. 373 页. 26. |
库存量 |
購買後立即進貨 下单时可选择“空运”或“海运”(空运和海运需独立下单)。空运费每本书/CD是RM32.00。 空运需时8-11个工作天,海运需时约30个工作天。 (以上预计时间不包括出版社调货的时间以及尚未出版的预购商品) 库存有限或需要调货,订购时间可能延长。如无法订购则将通知进行退款。 |
|
我要订购 有现货时通知我 |
|
放入下次购买清单 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
這是一本從開發流程、技術棧、典型問題解決方案和開發規範等維度全面講解服務端開發的著作。它衍生自作者在某有名互聯網科技公司內部講授的高口碑課程,是作者近10年服務端開發經驗的總結,同時融合了業界在服務端開發方面的寶貴項目經驗和實踐智慧。
本書理論與實踐結合,擺脫程式設計語言、框架、中介軟體及傳統程式設計思想的束縛,全景式、體系化地闡述了服務端開發,核心內容包括以下兩個部分。第一部分:服務端開發的技術和方法首先,介紹了服務端開發的職責、技術棧、核心流程和進階路徑;然後,從需求分析、抽象建模、系統設計、資料設計和非功能性設計5個方面展開,結合案例深入講解了服務端開發的實操方法和重難點,為讀者呈現出服務端開發的全景圖,幫助讀者快速、體系化地掌握服務端開發的相關知識和方法。第二部分:服務端典型問題的解決方案針對高併發、高性能、高可用、緩存、資料一致性、冪等、等服務端開發實踐中的典型問題,給出了對應的解決方案和開發規範,同時還結合案例深入分析了不同方案的優缺點。此外,還總結了介面設計、日誌列印、異常處理、代碼編寫、代碼注釋等落地層面的行業案例和規範。
|
|
|
|
|
|
|
|
|
|
|
|
購買中國簡體書籍請注意:
1. 因裝幀品質及貨運條件未臻完善,中國簡體書可能有出現磨痕、凹痕、折痕等問題,故簡體字館除封面破損、內頁脫落、缺頁等較嚴重的狀態外,其餘所有商品將正常出貨。
|
|
|
|
|
|
|
|
|
目錄
本書讚譽
前言
第一部分 技術與方法
第1章 走進服務端開發 2
1.1 服務端開發概述 2
1.1.1 服務端開發的定義 2
1.1.2 服務端開發的職責 4
1.2 服務端開發技術棧 5
1.2.1 程式設計語言 5
1.2.2 開發工具 6
1.2.3 開發框架 8
1.2.4 資料庫與資料存儲 10
1.2.5 中介軟體 14
1.2.6 作業系統 16
1.2.7 應用部署 19
1.2.8 運維監控 22
1.3 服務端開發核心流程 24
1.3.1 需求分析 24
1.3.2 抽象建模 26
1.3.3 系統設計 27
1.3.4 資料設計 30
1.3.5 非功能性設計 31
1.4 服務端開發進階路徑 33
1.4.1 構建能力模型 33
1.4.2 專業知識體系化 34
1.4.3 掌握學習方法 35
1.4.4 技術與業務同行 36
1.4.5 樹立正確的觀念 37
第2章 需求分析 39
2.1 需求分類 39
2.1.1 產品需求 40
2.1.2 技術需求 40
2.2 需求分析的流程 40
2.2.1 學習領域知識 41
2.2.2 明確業務目標 42
2.2.3 明確業務用例 43
2.2.4 梳理用例場景 44
2.2.5 構建業務模型 45
2.2.6 確認業務規則 47
2.2.7 確認需求 47
2.3 需求分析的常用方法 48
2.3.1 功能分析法 48
2.3.2 資料流程分析法 51
2.3.3 物件導向分析法 55
2.4 需求分析的重點和難點 56
2.4.1 統一語言 56
2.4.2 識別問題 57
2.4.3 資料分析 58
2.4.4 細節陷阱 59
第3章 抽象建模 61
3.1 抽象思維 61
3.1.1 軟體世界中的抽象 61
3.1.2 提升抽象思維的方法 63
3.2 建模方法 65
3.2.1 問題空間和解決方案空間 65
3.2.2 什麼是領域模型 66
3.2.3 為什麼要建立領域模型 68
3.2.4 典型的建模方法 69
3.2.5 建模應遵循的3個原則 71
3.3 用例建模法知識儲備 73
3.3.1 建模基礎 73
3.3.2 什麼是用例 74
3.3.3 挖掘用例的5個步驟 75
3.3.4 繪製用例圖的6個要素 78
3.4 用例建模法的4個實施步驟 80
3.4.1 提取模型 80
3.4.2 補充屬性 81
3.4.3 關係抽象 82
3.4.4 模型驗證 84
3.5 建模小結 85
第4章 系統設計 87
4.1 大話系統設計 87
4.1.1 戰術程式設計腐蝕系統 87
4.1.2 系統複雜化的3個特徵 88
4.1.3 系統複雜化的3個誘因 89
4.1.4 複雜化應對之道 90
4.2 總體架構 91
4.2.1 什麼是架構 91
4.2.2 架構推演 92
4.2.3 設計功能域 94
4.2.4 設計功能域協作 95
4.2.5 明確資料邊界 96
4.2.6 架構約束考量 97
4.2.7 邏輯架構細微性 98
4.2.8 小結 98
4.3 內部分層 99
4.3.1 什麼是分層 99
4.3.2 功能域內部分層 101
4.3.3 分層原則 103
4.3.4 小結 105
4.4 詳細設計 106
4.4.1 設計內容 106
4.4.2 設計原則 107
4.4.3 設計模式 109
4.4.4 小結 110
4.5 一圖勝千言 111
4.5.1 繪圖工具 111
4.5.2 “4+1”模型 112
4.5.3 C4模型 112
第5章 資料設計 117
5.1 資料設計概述 117
5.1.1 資料設計的步驟 117
5.1.2 概念資料模型 118
5.1.3 邏輯資料模型 119
5.1.4 物理資料模型 120
5.2 資料庫的分類 120
5.2.1 關係型數據庫 121
5.2.2 NoSQL資料庫 122
5.2.3 NewSQL資料庫 123
5.3 常用資料庫及其適用場景 124
5.3.1 常用的關係型數據庫 124
5.3.2 常用的NoSQL資料庫 127
5.3.3 存儲選型 130
5.4 存儲架構演進 131
5.4.1 單機模式 131
5.4.2 獨立主機 131
5.4.3 讀寫分離 132
5.4.4 垂直拆分 132
5.4.5 水準拆分 134
5.4.6 複合存儲方案 136
5.5 物理資料表設計 137
5.5.1 表設計 137
5.5.2 欄位設計 139
5.5.3 索引設計 140
5.5.4 語句設計 142
第6章 非功能性設計 145
6.1 穩定性設計 145
6.1.1 什麼是穩定性 145
6.1.2 容量評估 147
6.1.3 壓測摸底 151
6.1.4 風險識別 152
6.1.5 限流方案 152
6.1.6 降級方案 155
6.1.7 監控告警 157
6.2 預案設計 158
6.2.1 為什麼要做預案 158
6.2.2 如何做預案 159
6.3 可測性設計 160
6.3.1 可操作 160
6.3.2 可灰度 161
6.3.3 可壓測 162
6.4 資金安全設計 162
6.4.1 資損風險分析 162
6.4.2 資損防控三部曲 163
6.4.3 一致性 164
6.4.4 冪等 166
6.4.5 資料核對 167
6.4.6 資料監控 169
6.4.7 應急止損 170
6.5 其他非功能性設計 170
6.5.1 相容性 171
6.5.2 異常/補償 172
6.5.3 擴展性 174
第二部分 解決方案
第7章 高併發問題及解決方案 176
7.1 高併發概述 176
7.1.1 併發 176
7.1.2 CPU密集型與I/O密集型 177
7.1.3 高併發 178
7.2 資源擴展策略 179
7.2.1 垂直擴展 179
7.2.2 水準擴展 180
7.2.3 負載均衡 183
7.3 數據緩存策略 187
7.3.1 本地緩存 187
7.3.2 分散式緩存 194
7.3.3 CDN197
7.3.4 多級緩存 199
7.3.5 案例解析 200
7.4 流量削峰策略 202
7.4.1 訊息佇列削峰 202
7.4.2 用戶端削峰 205
7.5 服務降級策略 206
7.5.1 降級範圍 207
7.5.2 降級的分類 207
7.6 限流策略 208
7.7 基本原則 208
第8章 緩存的典型問題及解決方案 210
8.1 緩存預熱 210
8.1.1 應用啟動預熱策略 210
8.1.2 任務調度預熱策略 211
8.1.3 模擬請求預熱策略 215
8.1.4 小結 215
8.2 緩存淘汰 216
8.2.1 LRU 216
8.2.2 LFU 217
8.2.3 ARC 217
8.2.4 FIFO 219
8.3 緩存更新 219
8.3.1 Cache Aside模式 220
8.3.2 Read/Write Through模式 222
8.3.3 Write Behind Caching模式 223
8.3.4 小結 224
8.4 緩存雪崩 224
8.4.1 緩存常駐策略 224
8.4.2 多級緩存策略 224
8.4.3 過期時間優化策略 225
8.4.4 加鎖重建策略 226
8.5 緩存穿透 227
8.5.1 緩存空值策略 227
8.5.2 布隆篩檢程式策略 227
8.5.3 布穀鳥篩檢程式策略 231
8.6 緩存熱點 232
8.6.1 前置緩存策略 232
8.6.2 熱點散列策略 233
第9章 緩存資料與資料庫資料一致性問題及解決方案 235
9.1 CAP 理論簡介 235
9.1.1 CAP定義解讀 235
9.1.2 三個核心需求不可兼得 236
9.2 緩存資料與資料庫資料不一致的原因 238
9.2.1 操作時序導致資料不一致 238
9.2.2 操作失敗導致資料不一致 239
9.2.3 不可實現的絕對一致性 241
9.3 延時雙刪 242
9.3.1 原理及實施步驟 242
9.3.2 如何確定延時 243
9.3.3 優點與不足 244
9.4 基於binlog非同步刪除緩存 244
9.4.1 MySQL主從同步原理 244
9.4.2 感知資料庫變更 246
9.4.3 用戶端訂閱變更 246
9.4.4 訊息佇列訂閱變更 247
9.4.5 刪除緩存 249
9.5 自動過期加失敗補償 250
第10章 分散式系統冪等問題及解決方案 251
10.1 冪等概述 251
10.1.1 冪等場景舉例 251
10.1.2 什麼是冪等 252
10.1.3 為什麼需要冪等 253
10.1.4 併發與冪等 254
10.2 冪等實現四部曲 255
10.2.1 副作用分析 255
10.2.2 冪等號設計 255
10.2.3 冪等資料持久化設計 258
10.2.4 冪等處理流程設計 259
10.3 典型冪等策略 261
10.3.1 專享索引策略 261
10.3.2 悲觀鎖策略 263
10.3.3 分散式鎖策略 264
10.3.4 其他策略 266
10.4 冪等號生成 266
10.4.1 用戶端與服務端冪等 266
10.4.2 服務端系統間冪等 268
10.5 冪等注意事項 268
第11章 系統關鍵問題及解決方案 271
11.1 主要技術難點 271
11.1.1 高併發 271
11.1.2 高可用 273
11.1.3 一致性 273
11.1.4 反作弊 274
11.2 電商平臺的庫存運作全景圖 275
11.2.1 庫存模型 275
11.2.2 扣減模式 276
11.2.3 扣減執行流程 276
11.2.4 庫存查詢 277
11.2.5 核心鏈路 277
11.3 庫存架構演進 279
11.3.1 獨立主機 279
11.3.2 分庫分表 280
11.3.3 熱點處理 280
11.4 庫存單元化 282
11.4.1 中心化烏雲 282
11.4.2 優化困境 285
11.4.3 單元封閉 285
11.4.4 全域庫存與局部庫存 287
11.4.5 庫存回收難點 290
11.4.6 全域庫存可見性 292
第12章 常見性能瓶頸及解決方案 294
12.1 軟體性能概述 294
12.1.1 如何理解軟體性能 294
12.1.2 軟體性能評價指標 295
12.1.3 性能瓶頸與分析要素 296
12.2 CPU 296
12.2.1 執行緒與進程 297
12.2.2 CPU使用率 300
12.2.3 平均負載 302
12.2.4 CPU使用率與平均負載的差異 304
12.2.5 瓶頸表徵及解決方案 305
12.3 記憶體 307
12.3.1 記憶體使用率 308
12.3.2 特殊記憶體 309
12.3.3 記憶體回收 310
12.3.4 瓶頸表徵及解決方案 311
12.4 磁片 312
12.4.1 Linux I/O棧 313
12.4.2 磁片交互 315
12.4.3 主要性能指標 318
12.4.4 瓶頸表徵及解決方案 319
第13章 高可用問題及解決方案 321
13.1 高可用概述 321
13.1.1 什麼是高可用 321
13.1.2 為什麼需要高可用 322
13.1.3 穩定性與高可用 323
13.2 高可用設計原則 324
13.2.1 減少潛在風險的數量 324
13.2.2 減小故障的影響範圍 324
13.2.3 縮短故障的影響時間 325
13.3 接入層高可用 326
13.3.1 負載均衡 326
13.3.2 Keepalived 327
13.3.3 ECMP 328
13.4 業務層高可用 329
|
|
|
|
|
|
|
|
|
|
|
|