当前位置:主页 > 计算机电子书 > 行业软件及应用 > 微服务下载
Spring Cloud微服务架构进阶

Spring Cloud微服务架构进阶 PDF 完整超清版

  • 更新:2019-10-19
  • 大小:219.4 MB
  • 类别:微服务
  • 作者:朱荣鑫
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

Spring Cloud微服务架构进阶

Spring Cloud微服务架构进阶

内容总结

1.1 第一代服务框架
代表:Dubbo(Java)、Orleans(.Net)等
特点:和语言绑定紧密

1.2 第二代服务框架
代表:Spring Cloud等
现状:适合混合式开发(例如借助Steeltoe OSS可以让ASP.Net Core与Spring Cloud集成),正值当年

1.3 第三代服务框架
代表:Service Mesh(服务网格) => 例如Service Fabric、lstio、Linkerd、Conduit等
现状:在快速发展中,更新迭代比较快

1.4 未来(目测不久)主流的服务架构和技术栈

基础的云平台为微服务提供了资源能力(计算、存储和网络等),容器作为最小工作单元被Kubernetes调度和编排,Service Mesh(服务网格)管理微服务的服务通信,最后通过API Gateway向外暴露微服务的业务接口。
目前,我所在的项目组已经在采用这种技术架构了,服务网格采用的是Linkerd,容器编排采用的是K8S,Spring Cloud已经没用了。But,不代表Spring Cloud没有学习的意义,对于中小型项目团队,Spring Cloud仍然是快速首选。

内容介绍

本书全面系统地介绍Spring Cloud及其在微服务架构中的应用。全书共13章,第1章介绍微服务架构相关的基本概念;第2章介绍Spring Cloud中包含的组件以Spring Cloud约定的上下文;第3章介绍Spring Cloud的基础:Spring Boot,包括如何构建一个Spring Boot服务、Spring Boot的配置文件和Actuator提供的监控管理端点;第4至第13章详细讲解Spring Cloud组件,包括:Eureka(服务注册与发现)、OpenFeign(声明式Restful客户端)、Hystrix(断路器)、Ribbon(客户端负载均衡器)、Gateway(API网关)、Config(配置中心)、Stream(消息驱动)、Bus(消息总线)、Security(认证与授权)、Sleuth(服务链路追踪)。本书为读者揭开了Spring Cloud组件实现的技术内幕,并提供了进阶应用的思路,可以作为使用Spring Cloud进行微服务架构实践的参考书。

目录

  • 前言
  • 第1章 微服务架构介绍1
  • 1.1 微服务架构的出现1
  • 1.1.1 单体应用架构1
  • 1.1.2 SOA架构2
  • 1.1.3 微服务架构3
  • 1.2 微服务架构的流派5
  • 1.3 云原生与微服务9
  • 1.4 本章小结12
  • 第2章 Spring Cloud总览13
  • 2.1 Spring Cloud架构13
  • 2.2 Spring Cloud特性16
  • 2.2.1 Spring Cloud Context:应用上下文16
  • 2.2.2 Spring Cloud Commons:公共抽象19
  • 2.3 本章小结21
  • 第3章 Spring Cloud的基础:Spring Boot22
  • 3.1 Spring Boot简介22
  • 3.2 构建一个微服务24
  • 3.3 Spring Boot配置文件29
  • 3.3.1 默认配置文件29
  • 3.3.2 外部化配置29
  • 3.3.3 YAML30
  • 3.3.4 自动载入外部属性到Bean30
  • 3.3.5 多Profile31
  • 3.3.6 Starter32
  • 3.3.7 自制一个Starter32
  • 3.3.8 Actuator36
  • 3.4 本章小结38
  • 第4章 服务注册与发现:Eureka39
  • 4.1 基础应用40
  • 4.1.1 Eureka简介40
  • 4.1.2 搭建Eureka服务注册中心40
  • 4.1.3 搭建Eureka服务提供者42
  • 4.1.4 搭建Eureka服务调用者43
  • 4.1.5 Eureka服务注册和发现44
  • 4.1.6 Consul的简单应用46
  • 4.2 服务发现原理48
  • 4.3 Eureka Client源码解析49
  • 4.3.1 读取应用自身配置信息50
  • 4.3.2 服务发现客户端52
  • 4.3.3 拉取注册表信息56
  • 4.3.4 服务注册61
  • 4.3.5 初始化定时任务62
  • 4.3.6 服务下线68
  • 4.4 Eureka Server源码解析70
  • 4.4.1 服务实例注册表70
  • 4.4.2 服务注册72
  • 4.4.3 接受服务心跳74
  • 4.4.4 服务剔除75
  • 4.4.5 服务下线77
  • 4.4.6 集群同步78
  • 4.4.7 获取注册表中服务实例信息82
  • 4.5 进阶应用84
  • 4.5.1 Eureka Instance和Client的元数据84
  • 4.5.2 状态页和健康检查页端口设置85
  • 4.5.3 区域与可用区85
  • 4.5.4 高可用性服务注册中心86
  • 4.6 本章小结87
  • 第5章 声明式RESTful客户端:Spring Cloud OpenFeign88
  • 5.1 基础应用88
  • 5.1.1 微服务之间的交互88
  • 5.1.2 OpenFeign简介89
  • 5.1.3 代码示例89
  • 5.2 源码分析91
  • 5.2.1 核心组件与概念91
  • 5.2.2 动态注册BeanDefinition92
  • 5.2.3 实例初始化98
  • 5.2.4 函数调用和网络请求107
  • 5.3 进阶应用111
  • 5.3.1 Decoder与Encoder的定制化111
  • 5.3.2 请求/响应压缩112
  • 5.4 本章小结113
  • 第6章 断路器:Hystrix114
  • 6.1 基础应用114
  • 6.1.1 RestTemplate与Hystrix115
  • 6.1.2 OpenFeign与Hystrix117
  • 6.2 Hystrix原理118
  • 6.2.1 服务雪崩118
  • 6.2.2 断路器119
  • 6.2.3 服务降级操作120
  • 6.2.4 资源隔离121
  • 6.2.5 Hystrix实现思路122
  • 6.3 源码解析123
  • 6.3.1 封装HystrixCommand123
  • 6.3.2 HystrixCommand类结构129
  • 6.3.3 异步回调执行命令129
  • 6.3.4 异步执行命令和同步执行命令137
  • 6.3.5 断路器逻辑137
  • 6.3.6 资源隔离143
  • 6.3.7 请求超时监控148
  • 6.3.8 失败回滚逻辑150
  • 6.4 进阶应用152
  • 6.4.1 异步与异步回调执行命令152
  • 6.4.2 继承HystrixCommand153
  • 6.4.3 请求合并157
  • 6.5 本章小结161
  • 第7章 客户端负载均衡器:Spring Cloud Netflix Ribbon162
  • 7.1 负载均衡162
  • 7.2 基础应用163
  • 7.3 源码分析165
  • 7.3.1 配置和实例初始化165
  • 7.3.2 与OpenFeign的集成167
  • 7.3.3 负载均衡器LoadBalancerClient171
  • 7.3.4 ILoadBalancer173
  • 7.3.5 负载均衡策略实现177
  • 7.4 进阶应用184
  • 7.4.1 Ribbon API184
  • 7.4.2 使用Netty发送网络请求185
  • 7.4.3 只读数据库的负载均衡实现186
  • 7.5 本章小结187
  • 第8章 API网关:Spring Cloud Gateway189
  • 8.1 Spring Cloud Gateway介绍189
  • 8.2 基础应用190
  • 8.2.1 用户服务191
  • 8.2.2 网关服务192
  • 8.2.3 客户端的访问195
  • 8.3 源码解析195
  • 8.3.1 初始化配置196
  • 8.3.2 网关处理器197
  • 8.3.3 路由定义定位器202
  • 8.3.4 路由定位器205
  • 8.3.5 路由断言208
  • 8.3.6 网关过滤器216
  • 8.3.7 全局过滤器227
  • 8.3.8 API端点234
  • 8.4 应用进阶235
  • 8.4.1 限流机制235
  • 8.4.2 熔断降级238
  • 8.4.3 网关重试过滤器240
  • 8.5 本章小结241
  • 第9章 配置中心:Spring Cloud Config243
  • 9.1 基础应用244
  • 9.1.1 配置客户端244
  • 9.1.2 配置仓库245
  • 9.1.3 服务端246
  • 9.1.4 配置验证248
  • 9.1.5 配置动态更新249
  • 9.2 源码解析250
  • 9.2.1 配置服务器251
  • 9.2.2 配置客户端261
  • 9.3 应用进阶267
  • 9.3.1 为Config Server配置多个repo268
  • 9.3.2 客户端覆写远端的配置属性268
  • 9.3.3 属性覆盖269
  • 9.3.4 安全保护269
  • 9.3.5 加密解密270
  • 9.3.6 快速响应失败与重试机制272
  • 9.4 本章小结272
  • 第10章 消息驱动:Spring Cloud Stream274
  • 10.1 消息队列274
  • 10.2 基础应用276
  • 10.2.1 声明和绑定通道276
  • 10.2.2 自定义通道276
  • 10.2.3 接收消息276
  • 10.2.4 配置278
  • 10.3 源码分析278
  • 10.3.1 动态注册BeanDefinition279
  • 10.3.2 绑定服务282
  • 10.3.3 获取绑定器284
  • 10.3.4 绑定生产者289
  • 10.3.5 消息发送的流程291
  • 10.3.6 StreamListener注解的处理293
  • 10.3.7 绑定消费者298
  • 10.3.8 消息的接收304
  • 10.4 进阶应用306
  • 10.4.1 Binder For RocketMQ306
  • 10.4.2 多实例311
  • 10.4.3 分区311
  • 10.5 本章小结313
  • 第11章 消息总线:Spring Cloud Bus314
  • 11.1 基础应用314
  • 11.1.1 配置服务器315
  • 11.1.2 配置客户端316
  • 11.1.3 结果验证316
  • 11.2 源码解析318
  • 11.2.1 事件的定义与事件监听器319
  • 11.2.2 消息的订阅与发布326
  • 11.2.3 控制端点328
  • 11.3 应用进阶329
  • 11.3.1 在自定义的包中注册事件329
  • 11.3.2 自定义监听器330
  • 11.3.3 事件的发起者331
  • 11.4 本章小结332
  • 第12章 认证与授权:Spring Cloud Security333
  • 12.1 基础应用333
  • 12.1.1 OAuth2简介334
  • 12.1.2 JWT336
  • 12.1.3 搭建授权服务器338
  • 12.1.4 配置资源服务器341
  • 12.1.5 访问受限资源344
  • 12.2 整体架构346
  • 12.3 源码解析348
  • 12.3.1 安全上下文349
  • 12.3.2 认证350
  • 12.3.3 授权357
  • 12.3.4 Spring Security中的过滤器与拦截器361
  • 12.3.5 授权服务器372
  • 12.3.6 资源服务器387
  • 12.3.7 令牌中继机制394
  • 12.4 进阶应用395
  • 12.4.1 Spring Security定制395
  • 12.4.2 OAuth2定制399
  • 12.4.3 SSO单点登录403
  • 12.5 本章小结406
  • 第13章 服务链路追踪:Spring Cloud Sleuth407
  • 13.1 链路监控组件简介407
  • 13.2 基础应用410
  • 13.2.1 特性411
  • 13.2.2 项目准备411
  • 13.2.3 Spring Cloud Sleuth独立实现414
  • 13.2.4 集成Zipkin414
  • 13.3 本章小结420

资源下载

资源下载地址1:https://pan.baidu.com/s/11iAdggLUPN2nn9c24RZd6w

网友留言

网友NO.30994
祖雪风

微服务的概念源于 2014 年 3 月 Martin Fowler 所写的一篇文章“Microservices”。文中内容提到:微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。 每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。 另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。 微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。

网友NO.37333
孟高原

Spring Cloud核心子项目 Spring Cloud Netflix:核心组件,可以对多个Netflix OSS开源套件进行整合,包括以下几个组件: Eureka:服务治理组件,包含服务注册与发现 Hystrix:容错管理组件,实现了熔断器 Ribbon:客户端负载均衡的服务调用组件 Feign:基于Ribbon和Hystrix的声明式服务调用组件 Zuul:网关组件,提供智能路由、访问过滤等功能 Archaius:外部化配置组件 Spring Cloud Config:配置管理工具,实现应用配置的外部化存储,支持客户端配置信息刷新、加密/解密配置内容等。 Spring Cloud Bus:事件、消息总线,用于传播集群中的状态变化或事件,以及触发后续的处理 Spring Cloud Security:基于spring security的安全工具包,为我们的应用程序添加安全控制 Spring Cloud Consul : 封装了Consul操作,Consul是一个服务发现与配置工具(与Eureka作用类似),与Docker容器可以无缝集成

网友NO.22859
隆理群

接触Spring Cloud还是挺早的了,算是早期关注者吧,之后一直在项目中有实践和应用。相比于刚出来之前,Spring Cloud已经完善了太多,通过整合现有的开源框架和Spring社区自己开发的一部分组件,使得Spring Cloud功能越来越强大。Spring Cloud使用和整合单个组件还比较简单,但是在微服务的实践中,要求我们对这些基础的组件有更深的了解才行。在平时的应用中,我会去了解和学习各个组件的实现原理,虽然没有特别细致,但是也对其中的主要部分比较熟悉。 关于这方面的书籍,其实已经有DIDI(翟永超)的Spring Cloud微服务实战和周立Spring Cloud与Docker微服务架构实战等书籍,写得时间比较早,内容质量也挺高了。笔者实在不敢谈超越,然而技术的发展和迭代很快,Spring Cloud版本迭到了Finchley,基于的Spring Boot版本已经是2.x了(2.x已经基于Spring 5),相对来说,好多组件的实现和用法方面变化还是很大。这本《Spring Cloud 微服务架构进阶》基于最新的Finchley,详细介绍了微服务架构中涉及到的主要Spring Cloud组件,配合基础应用的案例介绍实现原理。本书适合所有的Java开发者,特别希望能为从事微服务开发和架构的读者提供一些帮助。