• 深入理解RPC框架原理与实现 华钟明 电子工业出版社
  • 深入理解RPC框架原理与实现 华钟明 电子工业出版社
  • 深入理解RPC框架原理与实现 华钟明 电子工业出版社
  • 深入理解RPC框架原理与实现 华钟明 电子工业出版社
21年品牌 40万+商家 超1.5亿件商品

深入理解RPC框架原理与实现 华钟明 电子工业出版社

正版二手书,发货前杀菌消毒,保证符合品相,不缺页,圆通发货(圆通不到走邮政),下单后24小时内发货。

25.25 2.1折 118 八品

仅1件

天津宝坻
认证卖家担保交易快速发货售后保障

作者华钟明

出版社电子工业出版社

ISBN9787121420948

出版时间2021-10

装帧平装

开本16开

定价118元

货号1870309994642657280

上书时间2024-12-22

启灵正版书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:八品
商品描述
前言

RPC作为目前的主流技术之一,它打破了某一项任务所需的计算资源只能靠一台计算机来实现的固有想法,对分布式计算、微服务等领域都有着重要而深远的影响。从20世纪80年代至今近四十年的时间内,由RPC衍生出来的技术非常多,包括很多现在常见的中间件技术都离不开RPC。RPC是技术时代的产物,它是由当时的社会发展、时代背景及需求所决定的。网络技术的发展,以及操作系统中的进程间通信技术越发多样化和成熟,这些都为RPC的出现打下了非常好的基础。

 

RPC是一种技术思想,它不可能一直停留在理论层面,需要落地,因此RPC框架慢慢地衍生出来。RPC框架是为了实现RPC而衍生出来的技术产物,它是RPC领域中可复用的软件架构解决方案。从以ONC RPC(Open Network Computing Remote Procedure Call)和DCE RPC(Distributed Computing Environment Remote Procedure Call)为首的初代RPC框架,到CORBA、DCOM、ZeroC ICE,再到现在流行的Apache Dubbo、Spring Cloud、gRPC、Thrift等,其间RPC框架也经历了几十年的发展,许多RPC框架都是从公司或者组织内开始“生根发芽”的,逐渐发展成熟后,被贡献到开源社区,由开源社区来发展和维护。

 

笔者待过的公司或多或少都使用了RPC技术,有的采用开源的RPC框架,有的采用自研RPC框架,使用RPC框架来实现RPC技术已经成为非常普遍的现象,而在使用RPC框架的时候,难免会遇到一些问题,此时需要熟悉RPC框架的原理才能解决这些问题。不同的RPC框架的实现细节会有所不同,但是底层的抽象都离不开几十年前的RPC技术理论,所以RPC技术的理论知识将是打开RPC框架原理之门的钥匙。

 本书写作目的 

笔者作为Apache Dubbo Committer,在参与Dubbo开源社区建设的同时,也在技术博客及自媒体平台上撰写和分享了一些有关RPC框架源码解读的文章,笔者经常收到一些读者的私信,希望笔者能够给他们推荐一些有关RPC的学习资料,让他们通过学习RPC来提高对这些开源的RPC框架源码和原理的理解程度,降低学习和研读RPC框架源码的成本和门槛。所以撰写本书的想法并不是突然出现的,随着类似的私信变多,撰写本书的想法逐渐形成了。

 

撰写本书的初衷是希望能够给读者介绍RPC技术及RPC框架的实现原理,让读者在面对如此众多的RPC框架时,能够较快地参透其原理。除此之外,本书的写作目的还有以下三点:

 希望本书可以让读者了解RPC及RPC框架的发展历史和背景,了解其演进过程。通过了解RPC的发展背景和历史加深对RPC的理解。 希望本书可以让读者了解在实现RPC框架或者在对RPC框架选型时,该考虑哪些重要的因素,并且了解常见的技术选型。 希望本书可以让读者了解RPC框架提供的服务治理的内容。 本书特点 

想要了解RPC框架原理,重要的就是了解RPC框架怎么使用,了解RPC框架内对RPC技术的抽象,以及RPC框架提供的服务治理的内容。本书的内容涵盖了这三部分,除了介绍市面上主流的RPC框架,还介绍了使用这些RPC框架的示例,方便读者通过这些示例上手RPC框架。除此之外,本书还介绍了对RPC框架的选型,为读者提供选型指南。

 

在介绍RPC框架的核心组成部分时,对每一个核心组成部分,本书都会完整地介绍该部分的周边知识,旨在让该领域的新手读者也能够轻松理解。除此之外,在介绍每一个核心组成部分时,本书都会介绍业界不同的实现方案,加深读者对这一核心组成部分的理解。本书还提供了一个实现简易的RPC框架的示例,通过动手实现RPC框架,可加深读者对RPC框架实现原理的认知,不单单停留在理论层面,而是能够直接运用RPC技术理论编写RPC框架。

 本书结构 

本书主要分为三部分。

 

部分为RPC概览(第1章、第2章),第1章主要介绍RPC的核心概念、历史背景、演进过程及技术原理,第2章主要介绍RPC框架的概念、发展历史及现状,并且介绍了四个常见的RPC框架,提供了这四个RPC框架的使用示例。

 

第二部分为RPC框架核心组件(第3章至第8章),详细介绍了RPC框架的核心组成部分、异构语言下RPC框架的挑战,以及解决异构语言的方案,并且针对每个核心组成部分介绍业界常见的实现方案。基于这些核心组成部分,本部分还介绍了编写一个RPC框架的示例。

 

第三部分为服务治理(第9章至第14章),详细介绍了服务治理的核心内容,其中每章的内容相对独立,读者可按照自身所需选择对应的内容进行阅读。

 

本书大部分的示例采用的编程语言都是Java,但各部分内容及其原理与语言无关,即使是没有Java基础的读者,也能通过本书理解RPC的原理和RPC框架的原理。

 源代码与官方参考 

本书示例代码位于www.broadview.com.cn/42094的下载资源处,读者可以从此处获取示例代码。

 勘误和支持 

若读者在阅读本书的过程中有任何问题或者建议,可以通过本书源码仓库提交Issue或者PR,也可以关注“加点代码调调味”微信公众号并加入微信群与笔者交流。笔者十分感谢并重视读者的反馈,会对读者提出的问题、建议进行梳理与反馈,并在本书后续版本中及时做出勘误与更新。

 致谢 

在本书写作和出版的近一年半时间里,感谢陈晓猛编辑的鼓励和支持,同时感谢理解我的家人,让我能够借用大量陪伴他们的时间创作本书。

 

 

 

华钟明


【书摘与插画】

 
 
 
 

商品简介

本书由浅入深、详细地介绍了RPC技术和RPC框架的原理。除此之外,本书还详细介绍了与RPC框架原理相关的技术,包括远程通信技术、通信协议、序列化技术、动态代理技术、IDL等。

 

本书首先介绍了RPC技术和RPC框架的发展背景、历史及演进过程,以加深读者对RPC技术的理解。然后介绍了常见的RPC框架,让读者能够对这些RPC框架有整体上的了解。接下来将RPC框架的核心组成部分拆开,对这些组成部分逐个进行介绍,并且介绍相关的技术和概念,比如介绍远程通信方式时,会介绍Socket技术、I/O模型等。本书接着介绍了实现简易的RPC框架的流程,让读者能够上手实际操作。本书还介绍了RPC框架是如何应对异构语言下的挑战的,并且介绍了与RPC框架相关的服务治理内容,包括注册中心、配置中心、元数据中心、服务路由策略、负载均衡策略、高可用策略及服务可观测性,让读者能够全面地了解RPC框架。



作者简介
华钟明
Apache Dubbo Committer,ServiceMesher中文社区成员,热爱分享,热衷开源,专注于服务化、分布式、云原生等技术领域,对这些技术领域有着深入的研究。

目录
目录

部分  RPC概览
章  初识RPC2
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  BIO81
3.3.2  NIO82
3.3.3  AIO93
3.4  远程通信实现方案之Netty99
3.4.1  Netty核心组件介绍102
3.4.2  线程模型105
3.5  远程通信实现方案之Mina111
3.6  远程通信实现方案之Grizzly119
第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  注册中心实现方案之Eureka262
9.5  注册中心实现方案之ZooKeeper265
9.6  注册中心实现方案之Nacos269
9.7  注册中心在一致性和可用性之间的抉择273
0章  配置中心276
10.1  配置中心简介277
10.2  配置中心实现方案之Apollo281
10.2.1  服务端的设计283
10.2.2  客户端的设计285
10.3  配置中心实现方案之Nacos286
1章  元数据中心292
11.1  元数据中心简介293
11.2  元数据中心的选型295
2章  服务的路由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
3章  分布式系统高可用策略310
13.1  分布式系统高可用311
13.2  Hystrix317
13.3  Resilience4j320
13.4  Sentinel324
4章  服务可观测性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框架。

主编推荐
RPC概览
主要介绍RPC的核心概念、历史背景、演进过程及技术原理,并且介绍四个常见的RPC框架与使用示例。

RPC框架核心组件
详细介绍RPC框架的核心组成部分、异构语言下RPC框架的挑战,以及解决异构语言的方案,并且针对每个核心组成部分介绍业界常见的实现方案。基于这些核心组成部分,还介绍如何编写一个RPC框架的示例。

服务治理
详细介绍服务治理的核心内容,包括注册中心、配置中心、元数据中心、服务路由策略、负载均衡策略、高可用策略及服务可观测性。

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP