首页>参考读物>计算机科学与技术>软件与程序设计

分布式系统架构与开发:技术原理与面试题解析
作者 : 郑天民 著
出版日期 : 2022-11-17
ISBN : 978-7-111-71268-8
定价 : 99.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 372
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

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

图书特色

拥有15年架构和研发经验的资深专家撰写
抛开具体框架,详解分布式系统的14个核心技术组件的实现原理、应用方式、设计思想
分析阿里、京东、网易等大厂面试真题,并提供面试技巧,帮助读者顺利通过分布式系统相关面试

上架指导

计算机\程序设计

封底文字

本书是目前我读过的唯一一本将分布式系统架构的技术原理与面试主题相结合的书。它几乎涵盖了架构的方方面面,从分布式系统的基本概念到架构设计原则与方法论,从最基础的网络通信、远程调用组件到服务化的配置中心、注册中心、网关设计组件等。如果你是位架构新手,那么不妨跟随本书的思路,带着“考点”去认识分布式系统中的各个技术模块,以便重点突破、快速上手。如果你是位技术老兵,那么本书也能让你从另一个视角来重新审视你对这些模块的认知是否存在偏差。如果你正经历这方面的技术面试,想要通过跳槽或者组织内部晋升的方式来实现职级跃迁,那么本书将助你一臂之力。
——汪佳南  技术专家,《RabbitMQ实战》等多部IT图书译者

本书对Java分布式系统的主流开发框架及工具进行了代码剖析,对Spring Cloud与Dubbo中涉及的网络通信、远程调用、负载均衡、服务容错、服务降级、注册中心、服务网关、配置中心、消息通信、动态代理、应用缓存、资源管理、框架集成、架构模式等技术进行了深入讲解,此外每章还包括常见的面试题解析,一定会帮助读者在面试过程中脱颖而出,拿到自己心仪的Offer。
——黄勇 “架构探险”系列图书作者

分布式技术是互联网应用开发的核心技术体系,包含与微服务架构相关的一系列技术组件。开发人员可能每天都在使用这些技术组件,却很少花心思去系统性地理解其设计思想和实现机制。本书融合了作者对分布式系统构建过程中各项核心技术的深刻理解与实践经验,并对Spring Cloud、Dubbo、MyBatis等主流的分布式开发框架提供了源码级的底层原理剖析。如果读者想要更好地实现日常开发需求、理解框架原理以及应对技术原理类面试,本书都能提供帮助。
——芋道源码  公众号“芋道源码”创始人

作者简介

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

图书目录

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


第1章 认识分布式系统
1.1 分布式系统概述
1.1.1 从单块系统到分布式系统
1.1.2 分布式系统基本特性
1.2 分布式系统核心技术点
1.2.1 性能
1.2.2 可用
1.2.3 治理
1.2.4 扩展
1.3 分布式系统开发技术组件
1.3.1 远程过程调用组件
1.3.2 微服务构建组件
1.3.3 通用技术组件
1.4 分布式系统主流开发套件
1.4.1 Spring/Spring Boot
1.4.2 Dubbo
1.4.3 Spring Cloud
1.4.4 Mybatis
1.5 分布式系统与技术面试
1.6 全书架构
1.7 本章小结
第2章 剖析框架代码的系统方法
2.1 基于组件设计原则剖析代码结构
2.1.1 为什么代码结构要这么设计?
2.1.2 组件设计原则与量化标准
2.1.3 组件设计原则与代码结构:Dubbo VS Mybatis
2.1.4 循环依赖及其消除方法
2.2 基于架构演进过程剖析代码结构
2.2.1 如何从易到难对框架进行逐步拆解?
2.2.2 Dubbo中的架构演进过程
2.3 基于核心执行流程剖析代码结构
2.3.1 如何抓住主流程对框架进行分层剖析?
2.3.2 Mybatis中的主执行流程
2.4 基于基础架构组成剖析代码结构
2.4.1 如何掌握从基础架构扩展到具体实现框架的方法?
2.4.2 RPC基础架构
2.4.3 从RPC扩展到Dubbo框架
2.5 基于可扩展性设计剖析代码结构
2.5.1 如何在框架中预留可扩展点?
2.5.2 常见可扩展性方法简介
2.5.3 Mybatis TypeHandler机制
2.6 本章小结
第3章 网络通信
3.1 网络通信基本概念
3.1.1 分布式操作与网络通信
3.1.2 网络通信与Netty框架
3.2 Dubbo服务器端通信原理
3.2.1 服务器端Exchange
3.2.2 服务器端Transport
3.2.3 服务器端Serialize
3.3 Dubbo客户端器端通信原理
3.4 网络通信面试题解析
3.5 本章小结
第4章 远程调用
4.1 服务发布和应用
4.1.1 如何暴露远程服务?
4.1.2 如何引用远程服务?
4.2 Dubbo中的远程调用
4.2.1 Dubbo服务发布流程
4.2.2 Dubbo服务引用流程
4.3 远程调用面试题解析
4.4 本章小结
第5章 负载均衡
5.1 负载均衡基本原理
5.1.1 负载均衡的类型
5.1.2 负载均衡算法和策略
5.2 Dubbo中的负载均衡
5.2.1 Dubbo负载均衡整体结构
5.2.2 Dubbo负载均衡策略
5.3 Spring Cloud中的负载均衡
5.3.1 Netflix Ribbon核心机制
5.3.2 Spring Cloud Netflix Ribbon实现原理
5.4 负载均衡面试题解析
5.5 本章小结
第6章 服务容错
6.1 服务容错设计思想
6.1.1 服务消费者容错
6.1.2 服务容错策略
6.2 Dubbo中的集群容错
6.2.1 Dubbo中的集群
6.2.2 Dubbo中的容错机制
6.3 Spring Cloud中的服务熔断
6.3.1 Spring Cloud Circuit Breaker
6.3.2 Hystrix滑动窗口机制
6.4 服务容错面试题解析
6.5 本章小结
第7章 服务降级
7.1 服务降级策略
7.1.1 服务分级
7.1.2 服务回退
7.2 Dubbo中的服务降级
7.2.1 Dubbo中的Mock机制
7.2.2 MockInvoker 和MockClusterInvoker
7.3 Spring Cloud中的服务降级
7.3.1 Spring Cloud中的Fallback机制
7.3.2 基于拦截器实现Fallback
7.4 服务降级面试题解析
7.5 本章小结
第8章 注册中心
8.1 服务注册和发现
8.1.1 注册中心模型
8.1.2 注册中心实现工具
8.2 Dubbo中的注册中心
8.2.1 Dubbo注册中心模型
8.2.2 Zookeeper基本原理与操作方式
8.2.3 Zookeeper注册中心实现过程
8.3 Spring Cloud中的注册中心
8.3.1 Eureka注册中心模型
8.3.2 Eureka服务器端基本原理
8.3.3 Eureka客户端基本原理
8.4 注册中心面试题解析
8.5 本章小结
第9章 服务网关
9.1 服务网关的基本结构
9.1.1 服务网关的作用和实现工具
9.1.2 服务网关的结构和功能
9.2 阻塞式网关Netflix Zuul工作原理
9.2.1 ZuulFilter组件架构
9.2.2 Spring Cloud中的ZuulFilter
9.3 响应式网关Spring Cloud Gateway工作原理
9.3.1 响应式编程和Spring Cloud Gateway
9.3.2 Router和Filter
9.4 服务网关面试题解析
9.5 本章小结
第10章 配置中心
10.1 配置中心基本模型
10.1.1 配置中心与微服务架构
10.1.2 配置中心实现工具
10.2 Spring Cloud Config 工作机制
10.2.1 Spring Cloud Config Server工作机制
10.2.2 Spring Cloud Config Client工作机制
10.3 Spring Cloud Config配置信息更新
10.3.1 Spring的事件监听模型
10.3.2 定时刷新与ConfigClientWatch
10.3.3 配置信息热更新机制
10.4 配置中心面试题解析
10.5 本章小结
第11章 消息通信
11.1 事件驱动和消息通信
11.1.1 事件驱动架构的需求
11.1.2 消息通信机制和消息中间件
11.1.3 基于消息通信机制的系统集成方法
11.2 从Spring Messaging到Spring Cloud Stream
11.2.1 Spring Messaging 和Spring Integration简介
11.2.2 Spring Cloud Stream中的Spring Integration
11.2.3 Spring Cloud Stream基本架构
11.3 Spring Cloud Stream整合消息中间件
11.3.1 Spring Cloud Stream消息发送和接收
11.3.2 RabbitMQ消息发送和接收
11.4 消息通信面试题解析
11.5 本章小结
第12章 链路跟踪
12.1 链路跟踪基本原理
12.1.1 Trace和Span
12.1.2 分布式链路跟踪与实现
12.2 Spring Cloud Sleuth链路跟踪
12.2.1 Spring Cloud Sleuth工作机制
12.2.2 Spring Cloud Sleuth整合Zipkin
12.3 链路跟踪面试题解析
12.4 本章小结
第13章 动态代理
13.1 代理模式和类型
13.1.1 静态代理机制
13.1.2 动态代理机制
13.2 Dubbo远程访问中的代理机制
13.2.1 JdkProxyFactory
13.2.2 JavassistProxyFactory
13.3 Mybatis数据访问中的代理机制
13.3.1 Mapper和动态代理
13.3.2 延迟加载和动态代理
13.4 动态代理面试题解析
13.5 本章小结
第14章 系统缓存
14.1 缓存的设计策略
14.1.1 经典缓存分层架构
14.1.2 应用层缓存的分级模式
14.2 Mybatis一级缓存
14.2.1 PerpetualCache
14.2.2 一级缓存与BaseExecutor
14.3 Mybatis二级缓存
14.3.1 CacheBuilder和MapperBuilderAssistant
14.3.2 二级缓存与CachingExecutor
14.4 系统缓存面试题解析
14.5 本章小结
第15章 资源管理
15.1 资源管理和资源池
15.1.1 资源模式的常见实现策略
15.1.2 资源池模型
15.2 Mybatis中的数据库连接池
15.2.1 连接池的工作流程和核心要素
15.2.2 Connection对象获取过程
15.2.3 PooledDataSource
15.2.4 UnpooledDataSource
15.3 资源管理面试题解析
15.4 本章小结
第16章 框架集成
16.1 框架集成的实现策略
16.1.1 系统启动和初始化
16.1.2 自定义配置标签
16.2 Spring中的启动扩展点
16.2.1 InitializingBean和DisposableBean
16.2.2 BeanPostProcessor
16.2.3 Aware
16.2.4 ApplicationListener
16.3 Spring Boot自动配置机制
16.3.1 @SpringBootApplication注解
16.3.2 @ConditionalOn系列条件注解
16.3.3 Spring Boot Starter机制
16.4 Dubbo的框架集成
16.4.1 Dubbo启动机制
16.4.2 Dubbo自定义配置标签体系
16.5 Mybatis的框架集成
16.5.1 Mybatis-Spring启动过程
16.5.2 Mybatis Spring Boot Starter
16.6 框架集成面试题解析
16.7 本章小结
第17章 架构模式
17.1 架构模式与应用
17.1.1 架构模式的概念和分类
17.1.2 基于架构模式把握框架设计思想
17.2 微内核模式及其应用
17.2.1 微内核架构和插件化系统
17.2.2 微内核模式的基本实现:Java SPI机制
17.2.3 微内核模式在Dubbo中的应用
17.2.4 Dubbo中的扩展点
17.3 管道-过滤器模式及其应用
17.3.1 管道-过滤器模式简介
17.3.2 管道-过滤器模式在Dubbo中的应用
17.3.3 管道-过滤器模式在Mybatis中的应用
17.4 架构模式面试题解析
17.5 本章小结
第18章 应对技术原理类面试
18.1 构建属于自己的技术知识体系
18.1.1 从几道面试题看看你对技术原理的掌握程度
18.1.2 论技术原理的相通性示例之一:RPC架构
18.1.3 论技术原理的相通性示例之二:分布式协调
18.1.4 知识体系构建的三个层次
18.2 应对技术原理分析类面试
18.2.1 技术原理类面试基本思路和模型
18.2.2 面试之前:你的简历决定了你的面试过程
18.2.3 面试开始:如何介绍你所用到的技术?
18.2.4 面试进行时:理论知识的敏感度
18.2.5 面试进行时:学会引导
18.2.6 面试进行时:自圆其说的艺术
18.2.7 面试之后:目标管理
18.3 本章小结

教学资源推荐
作者: [美] 陆永祥(Yung-Hsiang Lu) 著
作者: (美)Y. Daniel Liang 著 阿姆斯特朗亚特兰大州立大学
作者: 顾治华 陈天煌 忽朝俭
参考读物推荐
作者: 郑慧 范忠诚
作者: (美) Bruce Powel Douglass 著
作者: [美] 弗拉德·里斯库迪亚(Vlad Riscutia) 著