深入理解apache dubbo与实战 网络技术 诣极
详细解读dubbo框架工作和底层机制,展示动手扩展dubbo特的实战场景
¥
38.85
4.9折
¥
79
全新
库存11件
作者诣极
出版社电子工业出版社
ISBN9787121366345
出版时间2019-07
版次1
装帧平装
开本16
页数300页
字数360千字
定价79元
货号xhwx_1201908363
上书时间2024-11-20
商品详情
- 品相描述:全新
-
正版特价新书
- 商品描述
-
主编:
与官方文档不同,官方文档侧重讲解使用方法,深入理解apache dubbo与实战主要侧重于详细解读dubbo框架工作和底层机制,并结合少量核心源码进行讲解。在的基础上,展示一些动手扩展dubbo特的实战场景,并对dubbo的发展方向dubbo meh做了一些探索。
目录:
目录
章 dubbo――高能rpc通信框架1
1.1 应用架构演进过程1
1.1.1 单体应用1
1.1.2 分布式应用3
1.2 dubbo简介6
1.2.1 dubbo的发展历史7
1.2.2 dubbo是什么7
1.2.3 dubbo解决什么问题9
1.2.4 谁在使用dubbo10
1.2.5 dubbo后续的规划11
1.3 dubbo体大图11
1.3.1 dubbo体分层11
1.3.2 dubbo核心组件12
1.3.3 dubbo体调用过程13
1.4 小结15
第2章 开发款dubbo应用程序16
2.1 配置开发环境16
2.1.1 下载并安装k17
2.1.2 下载并安装ide17
2.1.3 下载并配置maven18
2.1.4 下载并配置zookeeper18
2.1.5 使用idea调试dubbo源码18
2.2 基于xml配置实现21
2.2.1 编写echo服务器21
2.2.2 编写echo客户端24
2.3 基于注解实现26
2.3.1 基于注解编写echo服务器26
2.3.2 基于注解编写echo客户端28
2.4 基于api实现30
2.4.1 基于api编写echo服务器30
2.4.2 基于api编写echo客户端31
2.5 构建并运行32
2.6 小结34
第3章 dubbo注册中心35
3.1 注册中心概述35
3.1.1 工作流程36
3.1.2 数据结构37
3.1.3 zookeeper概述37
3.1.4 redis概述39
3.2 订阅/发布40
3.2.1 zookeeper的实现40
3.2.2 redis的实现44
3.3 缓存机制48
3.3.1 缓存的加载49
3.3.2 缓存的保存与更新50
3.4 重试机制50
3.5 设计模式51
3.5.1 模板模式51
3.5.2 工厂模式52
3.6 小结54
第4章 dubbo扩展点加载机制55
4.1 加载机制概述55
4.1.1 java spi56
4.1.2 扩展点加载机制的改进57
4.1.3 扩展点的配置规范59
4.1.4 扩展点的分类与缓存60
4.1.5 扩展点的特61
4.2 扩展点注解62
4.2.1 扩展点注解:@spi62
4.2.2 扩展点自适应注解:@adaptive63
4.2.3 扩展点自动激活注解:@activate65
4.3 extensionloader的工作66
4.3.1 工作流程66
4.3.2 getextension的实现67
4.3.3 getadaptiveextension的实现70
4.3.4 getactivateextension的实现73
4.3.5 extensionfactory的实现73
4.4 扩展点动态编译的实现76
4.4.1 体结构77
4.4.2 javassist动态代码编译78
4.4.3 k动态代码编译79
4.5 小结80
第5章 dubbo启停解析81
5.1 配置解析81
5.1.1 基于schema设计解析82
5.1.2 基于xml配置解析85
5.1.3 基于注解配置解析91
5.2 服务暴露的实现97
5.2.1 配置承载初始化97
5.2.2 远程服务的暴露机制97
5.2.3 本地服务的暴露机制105
5.3 服务消费的实现106
5.3.1 单注册中心消费106
5.3.2 多注册中心消费113
5.3.3 直连服务消费114
5.4 优雅停机解析115
5.5 小结116
第6章 dubbo远程调用117
6.1 dubbo调用介绍117
6.2 dubbo协议详解119
6.3 编122
6.3.1 dubbo协议123
6.3.2 dubbo协议128
6.4 tel调用136
6.4.1 tel指令解析136
6.4.2 tel实现健康监测140
6.5 channelhandler141
6.5.1 核心handler和线程模型141
6.5.2 dubbo请求响应handler145
6.5.3 dubbo心跳handler148
6.6 小结150
第7章 dubbo集群容错151
7.1 cluster层概述151
7.2 容错机制的实现153
7.2.1 容错机制概述153
7.2.2 cluster接关系155
7.2.3 failover策略157
7.2.4 failfast策略158
7.2.5 failsafe策略158
7.2.6 failback策略159
7.2.7 available策略160
7.2.8 broadcast策略160
7.2.9 forking策略161
7.3 directory的实现162
7.3.1 体实现162
7.3.2 registrydirectory的实现163
7.4 路由的实现166
7.4.1 路由的体结构166
7.4.2 条件路由的参数规则167
7.4.3 条件路由的实现168
7.4.4 文件路由的实现169
7.4.5 脚本路由的实现170
7.5 负载均衡的实现171
7.5.1 包装后的负载均衡171
7.5.2 负载均衡的体结构173
7.5.3 random负载均衡175
7.5.4 roundrobin负载均衡176
7.5.5 leastactive负载均衡178
7.5.6 一致hash负载均衡179
7.6 merger的实现181
7.6.1 体结构181
7.6.2 mergeableclusterinvoker机制183
7.7 mock185
7.7.1 mock常见的使用方式185
7.7.2 mock的体结构186
7.7.3 mock的实现187
7.8 小结189
第8章 dubbo扩展点190
8.1 dubbo核心扩展点概述190
8.1.1 扩展点的背景191
8.1.2 扩展点整体架构191
8.2 rpc层扩展点192
8.2.1 proxy层扩展点192
8.2.2 registry层扩展点194
8.2.3 cluster层扩展点195
8.3 remote层扩展点198
8.3.1 protocol层扩展点199
8.3.2 exchange层扩展点202
8.3.3 transport层扩展点203
8.3.4 serialize层扩展点206
8.4 其他扩展点207
第9章 dubbo特210
9.1 dubbo特概述210
9.2 服务分组和版本211
9.3 参数回调214
9.4 隐式参数217
9.5 异步调用218
9.6 泛化调用219
9.7 上下文信息220
9.8 tel作221
9.9 mock调用224
9.10 结果缓存226
9.11 小结226
0章 dubbo过滤器227
10.1 dubbo过滤器概述227
10.1.1 过滤器的使用228
10.1.2 过滤器的体结构228
10.2 过滤器链初始化的实现231
10.3 服务提供者过滤器的实现233
10.3.1 accesslogfilter的实现233
10.3.2 executelimitfilter的实现234
10.3.3 classloaderfilter的实现235
10.3.4 contextfilter的实现237
10.3.5 exceptionfilter的实现237
10.3.6 timeoutfilter的实现238
10.3.7 tokenfilter的实现238
10.3.8 tlimitfilter的实现239
10.4 消费者过滤器的实现240
10.4.1 activelimitfilter的实现240
10.4.2 consumercontextfilter的实现242
10.4.3 deprecatedfilter的实现242
10.4.4 futurefilter的实现243
10.5 小结243
1章 dubbo注册中心扩展实践245
11.1 etcd背景介绍245
11.2 etcd数据结构设计246
11.3 构建可运行的注册中心248
11.3.1 扩展transporter实现248
11.3.2 扩展registryfactory实现249
11.3.3 新增jetcdclient实现250
11.3.4 扩展failbackregistry实现260
11.3.5 编写单元测试263
11.4 搭建etcd集群并在dubbo中运行263
11.4.1 单机启动etcd264
11.4.2 集群启动etcd265
11.5 小结266
2章 dubbo服务治理台267
12.1 服务治理台体结构267
12.2 服务治理台的实现269
12.3 小结273
3章 dubbo未来展望274
13.1 dubbo未来生态274
13.1.1 开源现状274
13.1.2 后续发展275
13.2 云原生281
13.2.1 面临的挑战281
13.2.2 service mesh简介283
13.2.3 dubbo mesh284
13.3 小结285
内容简介:
本书首先介绍dubbo的简史、后续的规划和整体架构大图;接着介绍dubbo环境配置,并基于dubbo开发款应用程序;然后介绍dubbo内置的常用注册中心的实现,dubbo扩展点加载的和实现,dubbo的启动、服务暴露、服务消费和优雅停机的机制,dubbo中rpc协议细节、编解码和服务调用实现,dubbo集群容错、路由和负载均衡机制,dubbo的扩展点相关知识,dubbo特的实现和,dubbo常用的filter的实现,dubbo中新增etcd3注册中心的实战内容和dubbo服务治理台的相关知识;后介绍dubbo未来生态和dubbo meh的相关知识。
作者简介:
"商宗海,花名诣极,apache dubbo pmc。曾职于阿里巴巴、有赞,担任dubbo框架技术负责人,长期活跃在dubbo社区。现职于金服中间件团队,负责ofarpc和云原生方向的产品研发。
林琳,花名景竹,曾职于华软集团、递四方等公司,担任技术经理、架构师等职位。现职于金服事业群,负责工程台架构工作。
"
精彩内容:
"序一
来,随着业务规模的发展和复杂度的增加,传统的单体应用已经很难适应业务迭代的诉求,越来越多的公司开始进行服务化的改造。很高兴看到apache dubbo被许多公司采用,作为服务化改造的基础架构进行演进。这里面包括了许多互联网公司、国字头的大型企业,以及金融行业的巨头公司。apache dubbo因为良好的设计和扩展受到许多开发者的欢迎,然而当开发者需要深入了解dubbo底层的架构设计和实现的时候,往往会有些不知所措。网上也有很多爱好者撰写的源码分析等文章,虽有所有启发和裨益,但觉得不够成体系。令人遗憾的是,市面上始终缺乏一本完整的、体系化的对apache dubbo进行深入剖析的书。
本书的出现填补了这一空白,本书由浅入深,娓娓道来。既有对dubbo基本概念的讲解、底层的分析,同时又不乏生动的实战内容。作为的内容,对扩展点、过滤器,以及dubbo的特,都有深入浅出的介绍。非常适合想了解dubbo,对dubbo实现感兴趣的读者阅读。
我和本书作者因为共同参与dubbo社区而认识,彼时dubbo刚刚加入apache会进行孵化。在参与社区开发的过程中,经常有过深入的交流,在此过程中,本书作者所展现出来的对dubbo内核机制透彻的理解,以及对细节的准确把握,让我受益匪浅。正式因为本书作者出的贡献,他也成为dubbo加入apache孵化器之后mitter(提交者,对代码具有提交权限),后续更是成为pmc member(项目管理委员会成员,对项目发展具有决定的投票权)。由他提笔来撰写本书,我认为再合适不过。在阅读本书的过程中,我收获颇丰。
工欲善其事,必先先利器。希望更多的读者因为本书而受益,也希望有更多的人阅读本书之后,了解dubbo,参与到社区中,一起把社区发展得越来越好。
写在dubbo从apache会之际。
张乎兴,阿里云技术专家,
apache member,apache dubbo/tomcat pmc member
序二
过去十多年互联网产业的高展,在给社会带来深刻变革的同时,也催生了服务架构的演进:从传统的单体应用到面向服务的oa,再到现今主流的微服务架构,而apache dubbo是微服务领域中的先行者和佼佼者。
apache dubbo是阿里巴巴于于2011年开源的一款高能java rpc框架,开源伊始在业界产生了很大的影响,被大量公司广泛使用,甚至在很多公司自研的rpc框架中也能看到不少dubbo的影子,可以说dubbo在服务化体系演进过程中扮演了一个非常重要的角。虽然中间经历了几年时间的沉寂,不过2017年阿里巴巴又重启了对dubbo的开源维护,受到了社区的广泛欢迎,社区活跃度也随之迅速提升,dubbo也正在从一个微服务领域的高能rpc框架,逐步演变为一个完整的微服务生态。
之前由于工作关系,对dubbo有过比较深入的研究,在阅读dubbo的源码过程中,深深体会到了作者的匠心设计和深厚功底。我们知道服务往往是一家公司技术体系中核心的部分,是整个业务的基石,所以作为一款涵盖了服务交互全过程的通用rpc框架,必须能非常简单、无侵入地支持业务对服务调用过程中的各个阶段做扩展和定制,比如通信协议、序列化格式、路由策略、负载均衡、监控运维等。而dubbo通过微内核设计、pi扩展的方式地解决了这一难题,不管是dubbo自身的特,还是业务方的扩展,都统一通过pi来实现,在dubbo内核面前都是“一等公民”,从而保证了框架自身的可持续和稳定。有特殊需求的业务或公司可以在不修改一行dubbo源码的情况下加载自己的扩展或接入自己的产品和运维体系,这一点非常值得我们学。
和诣极认识也是源于dubbo,他是apache dubbo项目的pmc,为dubbo贡献了很多有价值的特,如2协议、etcd注册中心等,现在有幸成为同事,对他也有了更深的了解。在我看来,他是一个很纯粹的技术人,熟读众多开源框架的源码并对其了然于胸,对技术也充满了热情,能在工作非常饱和的情况下坚持完成本书的写作,可见一斑。受其热情感染,所以当收到邀请为本书作序时,我也是毫不犹豫地答应了。
收到书稿后时间细细通读了一遍,本书作为本体系化讲解apache dubbo的书籍,深入浅出地解释了dubbo的工作,配以源码级解析,向读者展现了一款的分布式中间件的设计用心和实现细节,非常适合有志于成为架构师的技术爱好者细细阅读和品味。同时本书在dubbo的协议设计、编解码、线程模型等方面也做了深度剖析,使读者不仅知其然也能知其所以然,有助于理解分布式环境下的服务通信范式,对问题排查也会有很大益处。所以在此向大家本书,相信不管是初学者还是有多年经验的工程师,通过阅读本书,都会有所收获。
宋顺,金服技术专家
开源配置中心apollo作者
前言
本书的由来
在apache dubbo(以下简称dubbo)重新开源之前,dubbo已经被很多公司广泛用于生产环境并获得了良好的反馈,很多公司也会建立私有分支自己维护,其中dubbox是基于dubbo分支进行扩展并二次维护的。重新开源后,社区维护的dubbo版本进行了大量“bug fix”和特支持,收到了大量dubbo用户的支持和参与。编写本书的想法是在开源后提出来的,因此本书取名深入理解apache dubbo与实战。
我早接触dubbo是2015年在参与云基础设施建设和微服务框架搭建时,那时的dubbo基本是分布式系统的。我在使用过程中遇到了不少问题,不得不通过调试dubbo源码来解决。在源码调试过程中,我逐渐理解dubbo的设计理念,越发惊叹其架构设计的巧妙,正所谓:的设计万里挑一。
后来我加入另外一家公司担任架构师,在基础架构组负责中间件与框架的研发,也是基于dubbo等框架做二次开发。此时,我与本书另一位作者诣极成为同事,我们志趣相投,也为编写本书埋下了伏笔。
2017年,dubbo经历了数年的停滞后,终于又重启维护。我还依稀记得阿里巴巴公司宣布的那天诣极的兴奋状,诣极是首批投入apache dubbo开源工作中去的开发者,期间为apache dubbo贡献了众多特,如 2、etcd注册中心等,现在已经成为apache dubbo pmc。
dubbo在重启维护后,短时间内有了大量的更新。此时我正职于金服,每天苦于繁重的crud。我发现市面上没有一本系统讲解dubbo的书籍,dubbo相关的资料大都是一些博客文章,并且内容也相对陈旧。于是我“怂恿”诣极与我一起写这本书,作为这些年来工作的一个结,他也欣然答应。
然后是历时半年的写作过程,一波三折。中途有一些朋友加入,又因为各种不可抗拒的原因退出。我和诣极时的工作都非常饱和,又要关注开源工作,常常焦头烂额。道虽迩,不行不至;事虽小,不为不成。时间是一点一点挤出来的,终我们还是坚持完成了本书,并且没有偏离
— 没有更多了 —
以下为对购买帮助不大的评价