-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
服務端開發:技術、方法與實用解決方案 版權信息
- ISBN:9787111732891
- 條形碼:9787111732891 ; 978-7-111-73289-1
- 裝幀:平裝-膠訂
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
服務端開發:技術、方法與實用解決方案 本書特色
(1)作者背景資深:作者任職于著名互聯網科技公司,是服務端開發方面的資深專家。曾就職于華為,獲得華為“總裁嘉獎令”,杭州市高層次人才。
(2)作者經驗豐富:作者在服務端開發方面有近10年開發經驗,長期致力于構建高效、可靠、可擴展的服務端系統,積累了大量優秀實踐。
(3)大廠服務端工作法:本書衍生自作者在大廠內部講授的系列技術培訓課程,曾獲得阿里技術講師課程大賽冠軍,口碑炸裂。
(4)理論與實踐結合:既講解了服務端開發的流程、規范、技術棧等理論內容,又講解了典型難題的解決方案。
(5)解決生產實踐難題:50 余個案例、200余幅圖,系統闡述高并發、高可用、高性能、緩存、冪等、數據一致性等服務端典型難題的解決方案
(6)13位專家力薦:來自螞蟻、阿里、微軟等知名企業和浙大、北大、斯坦福、劍橋等一流大學的13位專家強烈推薦。
服務端開發:技術、方法與實用解決方案 內容簡介
這是一本從開發流程、技術棧、典型問題解決方案和開發規范等維度全面講解服務端開發的著作。它衍生自作者在某有名互聯網科技公司內部講授的高口碑課程,是作者近10年服務端開發經驗的總結,同時融合了業界在服務端開發方面的寶貴項目經驗和實踐智慧。本書理論與實踐結合,擺脫編程語言、框架、中間件及傳統編程思想的束縛,全景式、體系化地闡述了服務端開發,核心內容包括以下兩個部分。**部分:服務端開發的技術和方法首先,介紹了服務端開發的職責、技術棧、核心流程和進階路徑;然后,從需求分析、抽象建模、系統設計、數據設計和非功能性設計5個方面展開,結合案例深入講解了服務端開發的實操方法和重難點,為讀者呈現出服務端開發的全景圖,幫助讀者快速、體系化地掌握服務端開發的相關知識和方法。第二部分:服務端典型問題的解決方案針對高并發、高性能、高可用、緩存、數據一致性、冪等、等服務端開發實踐中的典型問題,給出了對應的解決方案和開發規范,同時還結合案例深入分析了不同方案的優缺點。此外,還總結了接口設計、日志打印、異常處理、代碼編寫、代碼注釋等落地層面的行業案例和規范。
服務端開發:技術、方法與實用解決方案 目錄
第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 CDN 197
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
13.4.1 無狀態服務 329
13.4.2 集群部署 331
13.4.3 依賴處理 332
13.4.4 重試機制 333
13.4.5 冪等設計 334
13.4.6 服務降級 334
13.4.7 服務限流 335
13.4.8 監控預警 335
13.5 數據層高可用 336
13.5.1 副本機制 337
13.5.2 數據復制模式 337
13.5.3 利用Raft算法實現數據
復制 338
13.5.4 利用Raft算法實現故障
轉移 345
13.5.5 數據分片 347
13.5.6 緩存高可用 348
第14章 服務端開發實用規范 349
14.1 實用API設計規范 349
14.1.1 明確邊界 349
14.1.2 “命令,不要去詢問”
原則 351
14.1.3 單一職責原則 353
14.1.4 不要基于實現設計API 355
14.1.5 異常模式或錯誤碼模式 355
14.1.6 避免使用帶有標識的
參數 357
14.1.7 API如其名 358
14.1.8 建立文檔 358
14.1.9 統一風格 359
14.2 實用日志規范 359
14.2.1 基本規范 359
14.2.2 級別規范 360
14.2.3 格式規范 360
14.2.4 其他規范 361
14.3 實用異常處理規范 362
14.3.1 異常處理機制 362
14.3.2 常用處理規范 363
14.4 實用代碼編寫規范 364
14.4.1 大道至簡 364
14.4.2 重復有度 365
14.4.3 快速失敗原則 367
14.5 實用注釋規范 369
14.5.1 復雜的邏輯 370
14.5.2 晦澀的算法 370
14.5.3 特殊的常量 371
14.5.4 非常規寫法 371
14.5.5 對外API 372
14.5.6 法律文件 373
服務端開發:技術、方法與實用解決方案 相關資料
*本書對互聯網服務端開發的核心環節和典型問題進行了深入、體系化地解讀,為廣大讀者打開了一扇了解、學習和借鑒互聯網服務端開發方法及技術的窗口。 ——徐正國 浙江大學教授/博士生導師/浙江大學湖州研究院副院長 *本書將服務端開發的方法與解決方案有機結合,既高屋建瓴,梳理出服務端開發的方法體系,又務實而專注,總結出行業實踐經驗,誠為服務端開發人員的最佳學習指南! ——張逸 《解構領域驅動設計》作者 *書中不僅系統地介紹了需求分析、抽象建模、系統設計、非功能性設計等服務端開發的核心環節,而且結合作者多年的互聯網實戰經驗,針對高并發、高可用、高性能、緩存、冪等、數據一致性等典型問題提供了解決方案。 ——趙航(桑美) 螞蟻集團資深技術專家 *本書衍生于作者在阿里和螞蟻集團的精品培訓課程,它蘊含了作者多年的工作實踐精華和對軟件研發理論的深入理解。書中結合實際問題與案例,將服務端系統的開發過程進行了體系化的闡述,并深入淺出地介紹了多種經典解決方案。 ——黃浩(陌銘) 阿里資深技術專家/阿里數字供應鏈技術總監 *本書涵蓋了服務端開發的方方面面,不僅介紹了各種開發工具和框架的使用方法,而且提供了豐富的開發案例和最佳實踐,使讀者能夠快速掌握各種開發技巧和設計方法! ——李瀛(晏嬰) 螞蟻資深技術專家 *本書涵蓋軟件設計的需求分析、抽象建模、系統設計、數據設計、非功能性設計五個方面,同時對高并發、高可用、高性能等問題相關的解決方案和指導原則做了闡述,并以案例輔之。 ——于君澤 公眾號“技術瑣話”主理人/《深入分布式緩存》聯合作者 *本書結合對項目經驗和行業案例的匯總提煉,將服務端開發中的需求分析、設計、開發等階段的方法論、重難點和解決方案娓娓道來,誠為互聯網服務端開發人員的手邊書,千遍不厭,常讀常新。 ——高海慧 《碼出高效:Java 開發手冊》聯合作者 *本書對于服務端開發者來說是一本不可多得的好書,內容豐富、實用性強,可作為服務端開發指南,值得每一位開發者學習和借鑒。 ——曹哲睿 微軟資深研發工程師 *本書獨辟蹊徑,以互聯網服務端開發的實際流程為主線,深入淺出地介紹了五大關鍵環節的實戰方法論和典型問題的解決方案,對于有志于進入 IT 行業的高校學生而言,本書自是不應錯過的。 ——任肖強 上海大學教授、博士生導師,國家海外高層次人才青年項目入選者 *傳統教材側重的基礎知識與日新月異的互聯網實踐技術之間需要一座與時俱進的溝通橋梁,而本書正可以發揮這樣的作用。 ——尤鵬程 北京大學助理教授、博士生導師 *本書結合作者多年的工程開發經驗、技術分享及課程講授心得,輔以大量插圖和案例系統地闡明了服務端開發的重難點問題,對不同層次的讀者均具有較好的借鑒作用。 ——余萬科 中國地質大學特任教授、湖北省青年人才 *本書以服務端開發的實際流程為主線,以關鍵問題為節點,全景式、體系化地介紹了相關技術、方法和解決方案,視角獨特。 ——張治坤 斯坦福大學訪問助理教授,德國 CISPA 研究組組長、博士生導師 *本書不僅提供了豐富的技術、方法等,還給讀者帶來了應對典型問題的解決方案,讓讀者能夠更直觀地體驗到服務端開發的魅力。通過閱讀本書,你將開啟一段充滿驚喜和挑戰的旅程。 ——胡之祺 劍橋大學博士
服務端開發:技術、方法與實用解決方案 作者簡介
郭進 浙江大學工學碩士,杭州市高層次人才現任某著名互聯網科技公司服務端技術專家先后從事過智能控制算法、分布式中間件和服務端研發。相關成果曾發表于領域頂級會議和SCI期刊。 近年來,致力于構建高效、可靠、可擴展的服務端系統,作為核心成員設計并開發了承載百萬級QPS、服務億級用戶的大型分布式系統,在領域建模、系統架構、信息流推薦及研發規范方面積累了大量優秀實踐曾獲得阿里第二屆技術講師課程大賽冠軍、華為“總裁嘉獎令”、浙江省優秀畢業生、NUEDC(全國大學生電子設計競賽 ) 全國一等獎及瑞薩特別獎、國家獎學金等30余個獎項。 CSDN博客專家,阿里高階技術“傳橙官”,先后在CSDN、“阿里技術”公眾號阿里ATA 等平臺發表技術文章數百篇,多篇文章入選平臺“年度最火文章合集”“年度好評TOP 10”和“頭條推薦”
- >
煙與鏡
- >
李白與唐代文化
- >
史學評論
- >
經典常談
- >
中國歷史的瞬間
- >
小考拉的故事-套裝共3冊
- >
新文學天穹兩巨星--魯迅與胡適/紅燭學術叢書(紅燭學術叢書)
- >
唐代進士錄