分散式服務框架:原理與實踐(簽名版)

分散式服務框架:原理與實踐(簽名版)

《分散式服務框架:原理與實踐(簽名版)》是2016年1月電子工業出版社出版的圖書,作者是李林鋒。

基本介紹

  • 書名:分散式服務框架:原理與實踐(簽名版)
  • 作者:李林鋒
  • 出版社:電子工業出版社
  • 出版時間:2016年1月1日
  • 頁數:312 頁
  • 定價:65 元
  • 開本:16 開
  • 裝幀:平裝
  • ISBN:9787121279195
內容簡介,圖書目錄,作者簡介,

內容簡介

分散式服務框架:原理與實踐》作者具有豐富的分散式服務框架、平台中間件的架構設計和實踐經驗,主導設計的華為分散式服務框架已經在全球數十個國家成功商用。《分散式服務框架:原理與實踐》依託工作實踐,從分散式服務框架的架構設計原理到實踐經驗總結,涵蓋了服務化架構演進、訂閱發布、路由策略、集群容錯和服務治理等多個專題,全方位剖析服務框架的設計原則和原理,結合大量實踐案例與讀者分享作者對分散式服務框架設計和運維的體會。同時,對基於Docker部署微服務以及基於微服務架構開發、部署和運維業務系統進行了詳細介紹。

圖書目錄

第1 章套用架構演進 1
1 1 傳統垂直套用架構 2
1 1 1 垂直套用架構介紹 2
1 1 2 垂直套用架構面臨的挑戰 4
1 2 RPC 架構 6
1 2 1 RPC 框架原理 6
1 2 2 最簡單的RPC 框架實現 8
1 2 3 業界主流RPC 框架 14
1 2 4 RPC 框架面臨的挑戰 17
1 3 SOA 服務化架構 18
1 3 1 面向服務設計的原則 18
1 3 2 服務治理 19
1 4 微服務架構 21
1 4 1 什麼是微服務 21
1 4 2 微服務架構對比SOA 22
1 5 總結 23
第2 章分散式服務框架入門 25
2 1 分散式服務框架誕生背景 26
2 1 1 套用從集中式走向分散式 26?
2 1 2 亟需服務治理 28
2 2 業界分散式服務框架介紹 29
2 2 1 阿里Dubbo 30
2 2 2 淘寶HSF 33
2 2 3 亞馬遜Coral Service 35
2 3 分散式服務框架設計 36
2 3 1 架構原理 36
2 3 2 功能特性 37
2 3 3 性能特性 39
2 3 4 可靠性 39
2 3 5 服務治理 40
2 4 總結 41
第3 章通信框架 42
3 1 關鍵技術點分析 43
3 1 1 長連線還是短連線 43
3 1 2 BIO 還是NIO 43
3 1 3 自研還是選擇開源NIO 框架 46
3 2 功能設計 47
3 2 1 服務端設計 48
3 2 2 客戶端設計 50
3 3 可靠性設計 53
3 3 1 鏈路有效性檢測 54
3 3 2 斷連重連機制 56
3 3 3 訊息快取重發 57
3 3 4 資源優雅釋放 58
3 4 性能設計 59
3 4 1 性能差的三宗罪 59
3 4 2 通信性能三原則 60
3 4 3 高性能之道 61
3 5 最佳實踐 61
3 6 總結 64
第4 章序列化與反序列化 65
4 1 幾個關鍵概念澄清 66
4 1 1 序列化與通信框架的關係 66
4 1 2 序列化與通信協定的關係 66
4 1 3 是否需要支持多種序列化方式 67
4 2 功能設計 67
4 2 1 功能豐富度 67
4 2 2 跨語言支持 68
4 2 3 兼容性 69
4 2 4 性能 70
4 3 擴展性設計 71
4 3 1 內置的序列化/反序列化功能類 71
4 3 2 反序列化擴展 72
4 3 3 序列化擴展 75
4 4 最佳實踐 77
4 4 1 接口的前向兼容性規範 77
4 4 2 高並發下的穩定性 78
4 5 總結 78
第5 章協定棧 79
5 1 關鍵技術點分析 80
5 1 1 是否必須支持多協定 80
5 1 2 公有協定還是私有協定 80
5 1 3 集成開源還是自研 81
5 2 功能設計 82
5 2 1 功能描述 82
5 2 2 通信模型 82
5 2 3 協定訊息定義 84
5 2 4 協定棧訊息序列化支持的欄位類型 85
5 2 5 協定訊息的序列化和反序列化 86
5 2 6 鏈路創建 89
5 2 7 鏈路關閉 90
5 3 可靠性設計 90
5 3 1 客戶端連線逾時 90
5 3 2 客戶端重連機制 91
5 3 3 客戶端重複握手保護 91
5 3 4 訊息快取重發 92
5 3 5 心跳機制 92
5 4 安全性設計 92
5 5 最佳實踐—協定的前向兼容性 94
5 6 總結 95
第6 章服務路由 96
6 1 透明化路由 97
6 1 1 基於服務註冊中心的訂閱發布 97
6 1 2 消費者快取服務提供者地址 98
6 2 負載均衡 98
6 2 1 隨機 98
6 2 2 輪循 99
6 2 3 服務調用時延 99
6 2 4 一致性哈希 100
6 2 5 粘滯連線 101
6 3 本地路由優先策略 102
6 3 1 injvm 模式 102
6 3 2 innative 模式 102
6 4 路由規則 103
6 4 1 條件路由規則 103
6 4 2 腳本路由規則 104
6 5 路由策略定製 105
6 6 配置化路由 106
6 7 最佳實踐—多機房路由 107
6 8 總結 108
第7章集群容錯 109
7 1 集群容錯場景 110
7 1 1 通信鏈路故障 110
7 1 2 服務端逾時 111
7 1 3 服務端調用失敗 111
7 2 容錯策略 112
7 2 1 失敗自動切換(Failover) 112
7 2 2 失敗通知(Failback) 113
7 2 3 失敗快取(Failcache) 113
7 2 4 快速失敗(Failfast) 114
7 2 5 容錯策略擴展 114
7 3 總結 115
第8 章服務調用 116
8 1 幾個誤區 117
8 1 1 NIO 就是異步服務 117
8 1 2 服務調用天生就是同步的 118
8 1 3 異步服務調用性能更高 120
8 2 服務調用方式 120
8 2 1 同步服務調用 120
8 2 2 異步服務調用 121
8 2 3 並行服務調用 125
8 2 4 泛化調用 129
8 3 最佳實踐 130
8 4 總結 131
第9章服務註冊中心 132
9 1 幾個概念 133
9 1 1 服務提供者 133
9 1 2 服務消費者 133
9 1 3 服務註冊中心 133
9 2 關鍵功能特性設計 134
9 2 1 支持對等集群 135
9 2 2 提供CRUD 接口 136
9 2 3 安全加固 136
9 2 4 訂閱發布機制 137
9 2 5 可靠性 138
9 3 基於ZooKeeper 的服務註冊中心設計 139
9 3 1 服務訂閱發布流程設計 139
9 3 2 服務健康狀態檢測 141
9 3 3 對等集群防止單點故障 142
9 3 4 變更通知機制 144
9 4 總結 144
第10 章服務發布和引用 145
10 1 服務發布設計 146
10 1 1 服務發布的幾種方式 146
10 1 2 本地實現類封裝成代理 148
10 1 3 服務發布成指定協定 148
10 1 4 服務提供者信息註冊 149
10 2 服務引用設計 150
10 2 1 本地接口調用轉換成遠程服務調用 150
10 2 2 服務地址本地快取 151
10 2 3 遠程服務調用 151
10 3 最佳實踐 152
10 3 1 對等設計原則 152
10 3 2 啟動順序問題 153
10 3 3 同步還是異步發布服務 153
10 3 4 警惕網路風暴 154
10 3 5 配置擴展 154
10 4 總結 156
第11 章服務灰度發布 157
11 1 服務灰度發布流程設計 158
11 1 1 灰度環境準備 158
11 1 2 灰度規則設定 159
11 1 3 灰度規則下發 160
11 1 4 灰度路由 161
11 1 5 失敗回滾 162
11 1 6 灰度發布總結 163
11 2 總結 163
第12 章參數傳遞 164
12 1 內部傳參 165
12 1 1 業務內部參數傳遞 165
12 1 2 服務框架內部參數傳遞 168
12 2 外部傳參 169
12 2 1 通信協定支持 169
12 2 2 傳參接口定義 170
12 3 最佳實踐 171
12 3 1 防止參數互相覆蓋 171
12 3 2 參數生命周期管理 171
12 4 總結 172
第13 章服務多版本 173
13 1 服務多版本管理設計 174
13 1 1 服務版本號管理 174
13 1 2 服務提供者 175
13 1 3 服務消費者 175
13 1 4 基於版本號的服務路由 176
13 1 5 服務熱升級 177
13 2 與OSGi 的對比 178
13 2 1 模組化開發 179
13 2 2 外掛程式熱部署和熱升級 184
13 2 3 不使用OSGi 的其他理由 185
13 3 總結 185
第14 章流量控制 186
14 1 靜態流控 187
14 1 1 傳統靜態流控設計方案 187
14 1 2 傳統方案的缺點 188
14 1 3 動態配額分配製 188
14 1 4 動態配額申請制 190
14 2 動態流控 191
14 2 1 動態流控因子 192
14 2 2 分級流控 192
14 3 並發控制 193
14 3 1 服務端全局控制 193
14 3 2 服務消費者流控 194
14 4 連線控制 195
14 4 1 服務端連線數流控 195
14 4 2 服務消費者連線數流控 195
14 5 並發和連線控制算法 195
14 6 總結 197
第15 章服務降級 198
15 1 禁止降級 199
15 1 1 禁止降級的流程 199
15 1 2 禁止降級的設計實現 200
15 2 容錯降級 202
15 2 1 容錯降級的工作原理 202
15 2 2 運行時容錯降級 204
15 3 業務層降級 205
15 4 總結 205
第16 章服務優先權調度 207
16 1 設定服務優先權 208
16 2 執行緒調度器方案 209
16 3 Java 優先權佇列 210
16 4 加權優先權佇列 211
16 5 服務遷入遷出 212
16 6 總結 213
第17 章服務治理 214
17 1 服務治理技術的歷史變遷 215
17 1 1 SOA Governance 215
17 1 2 分散式服務框架服務治理 217
17 1 3 AWS 雲端微服務治理 217
17 2 套用服務化後面臨的挑戰 218
17 2 1 跨團隊協作問題 219
17 2 2 服務的上下線管控 220
17 2 3 服務安全 220
17 2 4 服務SLA 保障 221
17 2 5 故障快速定界定位 221
17 3 服務治理 222
17 3 1 服務治理架構設計 223
17 3 2 運行態服務治理功能設計 225
17 3 3 線下服務治理 232
17 3 4 安全和許可權管理 234
17 4 總結 237
第18 章分散式訊息跟蹤 239
18 1 業務場景分析 240
18 1 1 故障的快速定界定位 240
18 1 2 調用路徑分析 241
18 1 3 調用來源和去向分析 242
18 2 分散式訊息跟蹤系統設計 242
18 2 1 系統架構 243
18 2 2 埋點日誌 244
18 2 3 採樣率 247
18 2 4 採集和存儲埋點日誌 248
18 2 5 計算和展示 249
18 2 6 調用鏈擴展 251
18 3 總結 251
第19 章可靠性設計 253
19 1 服務狀態檢測 254
19 1 1 基於服務註冊中心狀態檢測 254
19 1 2 鏈路有效性狀態檢測機制 255
19 2 服務健康度檢測 256
19 3 服務故障隔離 257
19 3 1 進程級故障隔離 257
19 3 2 VM 級故障隔離 259
19 3 3 物理機故障隔離 260
19 3 4 機房故障隔離 261
19 4 其他可靠性特性 262
19 4 1 服務註冊中心 262
19 4 2 監控中心 262
19 4 3 服務提供者 262
19 5 總結 263
第20 章微服務架構 264
20 1 微服務架構產生的歷史背景 265
20 1 1 研發成本挑戰 265
20 1 2 運維成本高 267
20 1 3 新需求上線周期長 268
20 2 微服務架構帶來的改變 268
20 2 1 套用解耦 268
20 2 2 分而治之 270
20 2 3 敏捷交付 271
20 3 微服務架構解析 271
20 3 1 微服務劃分原則 272
20 3 2 開發微服務 272
20 3 3 基於Docker 容器部署微服務 274
20 3 4 治理和運維微服務 277
20 3 5 特點總結 278
20 4 總結 279
第21 章服務化最佳實踐 280
21 1 性能和時延問題 281
21 1 1 RPC 框架高性能設計 281
21 1 2 業務最佳實踐 285
21 2 事務一致性問題 286
21 2 1 分散式事務設計方案 287
21 2 2 分散式事務最佳化 288
21 3 研發團隊協作問題 289
21 3 1 共用服務註冊中心 290
21 3 2 直連提供者 290
21 3 3 多團隊進度協同 291
21 3 4 服務降級和Mock 測試 291
21 3 5 協同調試問題 292
21 3 6 接口前向兼容性 292
21 4 總結 292

作者簡介

李林鋒,現任華為PaaS平台架構師,8年JavaNIO通信框架、平台中間件架構設計和開發經驗,主導設計和開發的華為分散式服務框架已經在全球數十個國家成功商用。精通Netty、Mina、RPC框架、企業ESB匯流排、分散式服務框架等技術,公司總裁技術創新獎獲得者。

相關詞條

熱門詞條

聯絡我們