《分布式系统架构与开发 技术原理与面试题解析》郑天民

《分布式系统架构与开发 技术原理与面试题解析》郑天民 | PDF下载|ePub下载

分布式系统架构与开发 技术原理与面试题解析 版权信息

  • 出版社:机械工业出版社
  • 出版时间:2022-11-01
  • ISBN:9787111712688
  • 条形码:9787111712688 ; 978-7-111-71268-8

分布式系统架构与开发 技术原理与面试题解析 本书特色

适读人群 :需要掌握各个分布式技术组件,想要将这些组件引入日常研发过程中的开发人员。 对Dubbo、Spring Cloud、MyBatis 等框架有一定使用经验,想要将主流分布式框架更好地应用到日常研发过程中的开发人员。 想要进一步理解主流分布式框架内部实现原理的开发人员。 需要应对技术原理类面试的开发人员。(1)作者经验丰富:15年研发和架构经验,曾担任多家上市公司和独角兽公司技术总监和CTO等职务,对分布式系统技术栈有深入研究。(2)内容针对性强:详解分布式系统的14个核心技术组件的实现原理、应用方式、设计思想,针对性地解决分布式系统的难题。(3)内容有创新性:与同类书不同,本书搜集并分析了每个主题下的高频大厂面试题,旨在帮助读者在面试和晋升时事半功倍。(4)内容实战性强:注重实用性,基于作者近15年的经验,通过丰富的场景案例提供了大量应用方案和*佳实践。(5)授人以鱼和渔:不仅分析了Dubbo、Spring Cloud、MyBatis等主流开源框架的源代码结构,还给出了分析框架源码的方法论;不仅分析了50余道大厂的分布式系统面试题,还给出了技术性面试的方法论。

分布式系统架构与开发 技术原理与面试题解析 内容简介

本书能帮助读者深入理解和掌握分布式系统架构与开发,以及快速了解各互联网大厂在分布式系统方面的高频面试题及其解法。
作者有超过15年的架构与研发经验,在分布式系统方面,积累了大量的项目经验和面试经验。分布式系统涉及的技术多且复杂,作者根据自己的经验,化繁为简,将从事分布式系统架构与开发的技术与能力,全部总结在了本书中,包含但不限于以下内容:
(1)抛开具体的框架,详细讲解分布式系统的全栈技术组件的实现原理、应用方式、设计思想,具体包括网络通信、远程调用、负载均衡、服务容错、服务降级、注册中心、服务网关、配置中心、消息通信、动态代理、应用缓存、资源管理、框架集成和架构模式。这些组件在各种分布式系统框架中是通用的,掌握本书内容后,读者在面对各种具体的框架时可以触类旁通。
(2)深入剖析Dubbo、SpringCloud、MyBatis等主流开源框架的源代码结构,分析它们的底层实现原理,提炼分布式系统开发精髓。
(3)创造一套剖析框架源代码结构的系统方法,分别基于组件设计原则、架构演进过程、核心执行流程、基础架构组成和可扩展性设计这5大主题展开讲解,指导读者高效学习其他开源框架。
(4)作者结合多年的面试和培训经验,针对每个技术组件梳理了一组面试题。这些面试题大多是阿里巴巴、京东、网易等大厂的真题,作者结合自己的理解对考点进行了解析,并将框架源码与面试题融合贯通。同时对于技术人员如何实现自我成长和高效应对技术面试,给出了系统性的方法论。

分布式系统架构与开发 技术原理与面试题解析 目录

前言

第1章 认识分布式系统1

1.1 分布式系统概述1

1.1.1 从单块系统到分布式系统1

1.1.2 分布式系统的基本特性3

1.1.3 分布式系统和微服务架构4

1.2 分布式系统的核心设计要求6

1.2.1 性能6

1.2.2 可用性6

1.2.3 可扩展性6

1.2.4 服务治理7

1.3 分布式系统开发技术组件7

1.3.1 远程过程调用组件8

1.3.2 微服务构建组件10

1.3.3 通用技术组件13

1.4 分布式系统的主流开发套件15

1.4.1 Spring Boot15

1.4.2 Spring Cloud18

1.4.3 Dubbo18

1.4.4 MyBatis19

1.5 分布式系统面试题解析19

1.6 本章小结20


第2章 剖析框架代码结构的系统方法22

2.1 基于组件设计原则剖析代码结构23

2.1.1 为什么代码结构要这么设计23

2.1.2 组件设计原则与量化标准24

2.1.3 组件设计原则与代码结构:

   Dubbo与MyBatis28

2.1.4 循环依赖及其消除方法31

2.2 基于架构演进过程剖析代码结构39

2.2.1 如何从易到难对框架进行

   逐步拆解39

2.2.2 Dubbo的架构演进过程40

2.3 基于主流程剖析代码结构46

2.3.1 如何抓住主流程并对框架

   进行分层剖析46

2.3.2 MyBatis中的主流程46

2.4 基于基础架构组成剖析代码结构54

2.4.1 如何从基础架构扩展到

   具体实现框架54

2.4.2 RPC基础架构54

2.4.3 从RPC基础架构扩展到

   Dubbo框架61

2.5 基于可扩展性设计剖析代码结构65

2.5.1 如何在框架中预留可扩展点65

2.5.2 常见的可扩展性设计方法66

2.5.3 MyBatis TypeHandler机制68

2.6 剖析框架代码结构面试题解析72

2.7 本章小结73


第3章 网络通信74

3.1 网络通信与Dubbo框架74

3.1.1 网络通信基本概念74

3.1.2 Dubbo中的网络通信组件77

3.2 Dubbo服务器端通信原理77

3.2.1 服务器端Exchange77

3.2.2 服务器端Transport82

3.2.3 服务器端Serialize84

3.3 Dubbo客户端通信原理87

3.4 网络通信面试题解析89

3.5 本章小结90


第4章 远程调用91

4.1 服务发布和引用92

4.1.1 如何发布远程服务92

4.1.2 如何引用远程服务93

4.2 Dubbo中的远程调用94

4.2.1 Dubbo服务发布流程94

4.2.2 Dubbo服务引用流程101

4.3 远程调用面试题解析109

4.4 本章小结110


第5章 负载均衡112

5.1 负载均衡基本原理112

5.1.1 负载均衡的类型113

5.1.2 负载均衡算法和策略114

5.2 Dubbo中的负载均衡116

5.2.1 Dubbo负载均衡整体结构116

5.2.2 Dubbo负载均衡策略118

5.3 Spring Cloud中的负载均衡120

5.3.1 Netflix Ribbon核心机制120

5.3.2 Netflix Ribbon负载均衡策略122

5.3.3 Spring Cloud Netflix Ribbon

   实现原理124

5.4 负载均衡面试题解析127

5.5 本章小结128


第6章 服务容错129

6.1 服务容错设计思想129

6.1.1 服务消费者容错129

6.1.2 服务容错策略130

6.2 Dubbo中的集群容错132

6.2.1 Dubbo中的集群133

6.2.2 Dubbo中的容错机制134

6.3 Spring Cloud中的服务熔断136

6.3.1 Spring Cloud Circuit Breaker137

6.3.2 Hystrix熔断机制139

6.4 服务容错面试题解析147

6.5 本章小结148


第7章 服务降级149

7.1 服务降级策略149

7.1.1 服务分级149

7.1.2 服务回退150

7.2 Dubbo中的服务降级151

7.2.1 Dubbo中的Mock机制151

7.2.2 MockInvoker和Mock-

   ClusterInvoker152

7.3 Spring Cloud中的服务降级154

7.3.1 Spring Cloud中的回退机制154

7.3.2 基于拦截器实现回退156

7.4 服务降级面试题解析158

7.5 本章小结159


第8章 注册中心160

8.1 服务注册和发现160

8.1.1 注册中心模型160

8.1.2 注册中心实现工具163

8.2 Dubbo中的注册中心163

8.2.1 Dubbo注册中心模型163

8.2.2 ZooKeeper基本原理与

   操作方式164

8.2.3 ZooKeeper注册中心实现过程166

8.3 Spring Cloud中的注册中心172

8.3.1 Eureka注册中心模型172

8.3.2 Eureka服务器端基本原理173

8.3.3 Eureka客户端基本原理178

8.4 注册中心面试题解析184

8.5 本章小结185


第9章 服务网关186

9.1 服务网关的核心概念187

9.1.1 服务网关的作用187

9.1.2 服务网关的结构和功能188

9.2 Spring Cloud Gateway工作原理188

9.2.1 响应式编程概述189

9.2.2 Spring Cloud Gateway架构192

9.2.3 路由和过滤器194

9.3 服务网关面试题解析204

9.4 本章小结205


第10章 配置中心206

10.1 配置中心基本模型207

10.1.1 配置中心与微服务架构207

10.1.2 配置中心实现工具208

10.2 Spring Cloud Config工作机制209

10.2.1 Spring Cloud Config Server

    工作机制209

10.2.2 Spring Cloud Config Client

    工作机制213

10.3 Spring Cloud Config配置信息更新218

10.3.1 Spring Cloud Config客户端

    更新策略218

10.3.2 配置信息热更新机制219

10.4 配置中心面试题解析223

10.5 本章小结225


第11章 消息通信226

11.1 事件驱动和消息通信226

11.1.1 事件驱动架构的需求226

11.1.2 消息通信机制和消息中间件228

11.1.3 基于消息通信机制的系统

    集成方法229

11.2 从Spring Messaging到

   Spring Cloud Stream230

11.2.1 Spring Messaging和

    Spring Integration 231

11.2.2 Spring Cloud Stream中的

    Spring Integration233

11.2.3 Spring Cloud Stream基本架构234

11.3 Spring Cloud Stream整合

   消息中间件235

11.3.1 Spring Cloud Stream

    发送和接收消息235

11.3.2 RabbitMQ发送和接收消息242

11.4 消息通信面试题解析245

11.5 本章小结246


第12章 动态代理247

12.1 代理模式和类型247

12.1.1 静态代理机制248

12.1.2 动态代理机制249

12.2 Dubbo远程访问中的代理机制252

12.2.1 ProxyFactory252

12.2.2 JdkProxyFactory253

12.3 MyBatis数据访问中的代理机制254

12.3.1 Mapper和动态代理254

12.3.2 延迟加载和动态代理258

12.4 动态代理面试题解析260

12.5 本章小结261


第13章 应用缓存263

13.1 应用缓存的设计策略263

13.1.1 经典缓存分层架构263

13.1.2 应用缓存的分级模式264

13.2 MyBatis一级缓存264

13.2.1 Cache264

13.2.2 PerpetualCache265

13.2.3 一级缓存与BaseExecutor268

13.3 MyBatis二级缓存271

13.3.1 CacheBuilder271

13.3.2 二级缓存与CachingExecutor274

13.4 应用缓存面试题解析277

13.5 本章小结278


第14章 资源管理279

14.1 资源管理和资源池279

14.1.1 资源池模型279

14.1.2 资源池实现示例280

14.2 MyBatis中的数据库连接池282

14.2.1 连接池的工作流程和

    核心要素283

14.2.2 Connection对象获取过程284

14.2.3 PooledDataSource285

14.2.4 UnpooledDataSource289

14.3 资源管理面试题解析290

14.4 本章小结291


第15章 框架集成292

15.1 Spring中的启动扩展点292

15.1.1 InitializingBean和

   DisposableBean292

15.1.2 BeanPostProcessor295

15.1.3 Aware296

15.1.4 ApplicationListener299

15.2 Spring自定义标签体系305

15.2.1 标签扩展时机305

15.2.2 标签扩展的开发流程305

15.3 Spring Boot自动配置310

15.4 Dubbo的框架集成312

15.4.1 Dubbo启动机制313

15.4.2 Dubbo自定义配置标签319

15.5 MyBatis的框架集成320

15.5.1 MyBatis-Spring启动过程320

15.5.2 MyBatis-Spring-Boot-Starter326

15.6 框架集成面试题解析329

15.7 本章小结331


第16章 架构模式332

16.1 架构模式与应用332

16.1.1 模式的概念和分类332

16.1.2 基于架构模式把握框架

    设计思想333

16.2 微内核模式及其应用334

16.2.1 微内核模式和插件化系统334

16.2.2 微内核模式的基本实现:

    SPI机制336

16.2.3 微内核模式在Dubbo

    中的应用339

16.2.4 Dubbo中的扩展点344

16.3 管道-过滤器模式及其应用346

16.3.1 管道-过滤器模式简介346

16.3.2 管道-过滤器模式在

    Dubbo中的应用351

16.3.3 管道-过滤器模式在MyBatis

    中的应用354

16.4 架构模式面试题解析360

16.5 本章小结362


分布式系统架构与开发 技术原理与面试题解析 作者简介

郑天民资深架构师和技术专家,有近15年的软件研发和架构经验。现担任某知名健康科技公司技术总监,先后就职于多家大型上市公司和互联网独角兽公司,担任系统架构师、技术总监和CTO等职务。 对架构设计和技术管理有深入的理解,积累了丰富的经验,研发和主持过10余个面向研发人员的技术与管理类培训课程。热衷于总结和分享,著作有《系统架构设计》等,译作有《Spring响应式编程》等。 阿里云MVP、腾讯云TVP、TGO鲲鹏会会员

下载地址:

《分布式系统架构与开发 技术原理与面试题解析》郑天民【benniaobook.org】.pdf

密码:2024 感谢您喜欢博主推荐此书,请支持购买正版。

备用下载地址:

链接2:点击下载 (百度网盘备用,解压密码: 8986)

链接3:点击下载 (UC网盘备用,解压密码: 8986)

链接4:点击下载 (迅雷网盘备用,解压密码: 8986)