深入理解 RPC 框架原理與實現

華鐘明

  • 出版商: 電子工業
  • 出版日期: 2021-10-01
  • 售價: $708
  • 貴賓價: 9.5$673
  • 語言: 簡體中文
  • 頁數: 338
  • 裝訂: 平裝
  • ISBN: 7121420945
  • ISBN-13: 9787121420948
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

本書由淺入深、詳細地介紹了RPC技術和RPC框架的原理。
除此之外,本書還詳細介紹了與RPC框架原理相關的技術,
包括遠程通信技術、通信協議、序列化技術、動態代理技術、IDL等。
本書首先介紹了RPC技術和RPC框架的發展背景、歷史及演進過程,以加深讀者對RPC技術的理解。
然後介紹了常見的RPC框架,讓讀者能夠對這些RPC框架有整體上的了解。
接下來將RPC框架的核心組成部分拆開,對這些組成部分逐個進行介紹,
並且介紹相關的技術和概念,比如介紹遠程通信方式時,會介紹Socket技術、I/O模型等。
本書接著介紹了實現簡易的RPC框架的流程,讓讀者能夠上手實際操作。
本書還介紹了RPC框架是如何應對異構語言下的挑戰的,並且介紹了與RPC框架相關的服務治理內容,
包括註冊中心、配置中心、元數據中心、服務路由策略、負載均衡策略、
高可用策略及服務可觀測性,讓讀者能夠全面地了解RPC框架。

作者簡介

華鐘明

Apache Dubbo Committer,ServiceMesher中文社區成員,熱愛分享,熱衷開源,
專注於服務化、分佈式、雲原生等技術領域,對這些技術領域有著深入的研究。

目錄大綱

目錄
第1部分 RPC概覽
第1章 初識RPC 2
1.1 計算機核心處理器簡介 3
1.1.1 單核處理器系統時代 3
1.1.2 多核處理器系統時代 4
1.1.3 多處理器系統時代 5
1.2 IPC簡介 6
1.3 RPC簡介 7
1.4 RPC的發展歷程 10
1.5 RPC核心組成部分 11
1.5.1 服務調用方 12
1.5.2 服務提供方 12
1.5.3 本地存根 12
1.5.4 RPC通信者 13
1.6 RPC調用過程 13
1.6.1 服務暴露的過程 14
1.6.2 服務發現的過程 15
1.6.3 服務引用的過程 16
1.6.4 方法調用的過程 16
第2章 初覽RPC框架 18
2.1 RPC框架簡介 19
2.2 RPC框架發展及市場現狀 21
2.3 Dubbo簡介 25
2.4 gRPC簡介 31
2.5 Thrift簡介 38
2.6 Spring Cloud簡介 44
2.6.1 Spring Cloud項目簡介 45
2.6.2 使用Spring Cloud的組件實現RPC調用的示例 51
2.7 選擇RPC框架的幾個角度 61
第2部分 RPC框架核心組件
第3章 遠程通信方式 68
3.1 遠程通信方式簡介 69
3.1.1 Socket簡介 69
3.1.2 Java對Socket接口的封裝 74
3.1.3 網絡應用程序框架 78
3.2 I/O模型 78
3.3 Java對I/O模型的封裝 81
3.3.1 BIO 81
3.3.2 NIO 82
3.3.3 AIO 93
3.4 遠程通信實現方案之Netty 99
3.4.1 Netty核心組件介紹 102
3.4.2 線程模型 105
3.5 遠程通信實現方案之Mina 111
3.6 遠程通信實現方案之Grizzly 119
第4章 通信協議 127
4.1 標準協議 128
4.2 傳輸層協議 131
4.3 應用層協議 136
4.4 自定義協議簡介 141
4.5 如何設計自定義協議 143
第5章 序列化 147
5.1 序列化和反序列化 148
5.2 文本格式的序列化方案 149
5.2.1 XML格式 150
5.2.2 JSON格式 152
5.3 二進制格式的序列化方案 158
5.4 序列化框架選型 167
第6章 動態代理 170
6.1 動態代理簡介 171
6.2 JDK自帶的動態代理方案 175
6.2.1 JDK實現動態代理的示例 175
6.2.2 通過JDK實現動態代理的原理 177
6.3 CGLib動態代理方案 183
6.3.1 使用CGLib實現動態代理的示例 184
6.3.2 使用CGLib實現動態代理的原理 185
6.4 Javassist動態代理方案 193
6.4.1 使用Javassist實現動態代理的示例 194
6.4.2 使用Javassist實現動態代理的原理 195
第7章 實現一個簡易的RPC框架 203
7.1 實現簡易的RPC框架 204
7.2 實現遠程調用 205
7.3 實現服務治理能力 216
7.4 使用簡易的RPC框架 222
第8章 異構語言應用調用 228
8.1 RPC在異構語言下的挑戰 229
8.2 IDL簡介 230
8.3 Dubbo在跨語言上的解決方案 232
8.3.1 Dubbo服務提供者 233
8.3.2 Dubbo服務消費者 237
8.4 CXF在跨語言上的解決方案 240
8.5 gRPC在跨語言上的解決方案 241
第3部分 服務治理
第9章 註冊中心 244
9.1 註冊中心簡介 245
9.2 CAP模型與ACID、BASE理論 250
9.3 分佈式一致性 256
9.4 註冊中心實現方案之Eureka 262
9.5 註冊中心實現方案之ZooKeeper 265
9.6 註冊中心實現方案之Nacos 269
9.7 註冊中心在一致性和可用性之間的抉擇 273
第10章 配置中心 276
10.1 配置中心簡介 277
10.2 配置中心實現方案之Apollo 281
10.2.1 服務端的設計 283
10.2.2 客戶端的設計 285
10.3 配置中心實現方案之Nacos 286
第11章 元數據中心 292
11.1 元數據中心簡介 293
11.2 元數據中心的選型 295
第12章 服務的路由 297
12.1 路由策略 298
12.2 負載均衡策略 302
12.2.1 服務端負載均衡 303
12.2.2 客戶端負載均衡 304
12.3 負載均衡算法 305
12.3.1 隨機算法 306
12.3.2 輪詢算法 306
12.3.3 *少活躍數算法 307
12.3.4 一致性Hash負載均衡算法 308
第13章 分佈式系統高可用策略 310
13.1 分佈式系統高可用 311
13.2 Hystrix 317
13.3 Resilience4j 320
13.4 Sentinel 324
第14章 服務可觀測性 330
14.1 服務可觀測性簡介 331
14.2 日誌記錄 333
14.3 聚合度量 335
14.4 鏈路追踪 337