注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计分布式系统架构与开发:技术原理与面试题解析

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

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

定 价:¥99.00

作 者: 郑天民 著
出版社: 机械工业出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787111712688 出版时间: 2022-11-01 包装: 平装-胶订
开本: 16开 页数: 字数:  

内容简介

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

作者简介

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

图书目录

前言
第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

本目录推荐