深入理解RPC框架原理与实现

深入理解RPC框架原理与实现
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2021-10
版次: 1
ISBN: 9787121420948
定价: 118.00
装帧: 其他
开本: 其他
纸张: 胶版纸
页数: 348页
21人买过
  • 本书由浅入深、详细地介绍了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
  • 内容简介:
    本书由浅入深、详细地介绍了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
查看详情
12
相关图书 / 更多
深入理解RPC框架原理与实现
深入理解移动互联网
吴功宜 吴英 编著
深入理解RPC框架原理与实现
深入实施“四个育人”,彰显本科人才培养特色——云南大学本科教育改革与创新优秀论文集
主编唐旭光
深入理解RPC框架原理与实现
深入浅出C语言程序设计(第3版·微课版)
李俊·c;强振平;荣剑;张晴晖;赵毅力;钟丽辉
深入理解RPC框架原理与实现
深入浅出C#(视频教学版)
赵云
深入理解RPC框架原理与实现
深入实践Kotlin元编程
霍丙乾 著
深入理解RPC框架原理与实现
深入北方的小路(布克奖震撼杰作。人生在世,行走于地狱屋顶,凝望花朵。余华力荐“了不起的小说”!)
[澳]理查德·弗兰纳根 著;新经典 出品
深入理解RPC框架原理与实现
深入学习习近平关于科技创新的重要论述
科学技术部编写组 著
深入理解RPC框架原理与实现
深入浅出IoT:完整项目通关实战
[英]吉姆·贝内特(Jim Bennett) 著;柴火创客空间 译;[美]珍·福克斯(Jen Fox);[美]珍·卢珀(Jen Looper)
深入理解RPC框架原理与实现
深入浅出SSD:固态存储核心技术、原理与实战 第2版
SSDFans 胡波 石亮 岑彪
深入理解RPC框架原理与实现
深入地心 少儿科普 新华正版
英国尤斯伯恩出版公司
深入理解RPC框架原理与实现
深入理解FFmpeg
刘歧 赵军 杜金房 赵文杰 宋韶颍
深入理解RPC框架原理与实现
深入人心:数字产品设计的底层逻辑
林婕