标签分类 热门分类
当前位置:首页 > 行业软件及应用电子书 > 微服务电子书网盘下载
Spring Cloud微服务架构进阶

Spring Cloud微服务架构进阶 全书扫描版电子书

官方价: 19.99

更 新:

Spring Cloud微服务架构进阶 (pdf、epub、mobi、azw3)下载

下载地址:https://pan.baidu.com/s/1wWeFJtWeJ1p-M78IxbfYg

分享码:43h6

给大家带来的一篇关于微服务相关的电子书资源,介绍了关于Spring、Cloud、微服务方面的内容,本书是由机械工业出版社出版,格式根据源资源分为PDF、epub、mobi、azw3其中一种或多种格式,资源大小219.4 MB,朱荣鑫编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.1,更多相关的学习资源可以参阅 行业软件及应用电子书、等栏目。

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

上一篇:Python从小白到大牛  下一篇:重构:改善既有代码的设计

展开 +

收起 -

微服务 相关电子书
微服务 学习笔记
网友NO.610644

SpringCloud重试机制配置详解

首先声明一点,这里的重试并不是报错以后的重试,而是负载均衡客户端发现远程请求实例不可到达后,去重试其他实例。 @Bean@LoadBalancedRestTemplate restTemplate() { HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(); httpRequestFactory.setReadTimeout(5000); httpRequestFactory.setConnectTimeout(5000); return new RestTemplate(httpRequestFactory);} feign重试机制 feign默认是通过自己包下的Retryer进行重试配置,默认是5次 package feign;import static java.util.concurrent.TimeUnit.SECONDS;/** * Cloned for each invocation to {@link Client#execute(Request, feign.Request.Options)}. * Implementations may keep state to determine if retry operations should continue or not. */public interface Retryer extends Cloneable { /** * if retry is permitted, return (possibly after sleeping). Otherwise propagate the exception. */ void continueOrPropagate(RetryableException e); Retryer clone(); public static class Default implements Retryer { private final int maxAttempts; private final long period; private final long maxPeriod; int attempt; long sleptForMillis; public Default() { this(100, SECONDS.toMillis(1), 5); } public Default(long period, long maxPeriod, int maxAttempts) { this.period = period; this.maxPeriod = maxPeriod; this.maxAttempts = maxAttempts; this.attempt = 1; } feign取消重试 @Bean Retryer feignRetryer() { return Retryer.NEVER_RETRY; } feign请求超时设置 @Be……

网友NO.365512

使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务的方法(推荐)

在Spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端。我们可以使用JDK原生的URLConnection、Apache的Http Client、Netty的异步HTTP Client, Spring的RestTemplate。但是,用起来最方便、最优雅的还是要属Feign了。 Feign简介 Feign是一种声明式、模板化的HTTP客户端。在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求。比如: @Autowiredprivate AdvertGropRemoteService service; // 远程服务public AdvertGroupVO foo(Integer groupId) { return service.findByGroupId(groupId); // 通过HTTP调用远程服务} 开发者通过 service.findByGroupId() 就能完成发送HTTP请求和解码HTTP返回结果并封装成对象的过程。 Feign的定义 为了让Feign知道在调用方法时应该向哪个地址发请求以及请求需要带哪些参数,我们需要定义一个接口: @FeignClient(name = "ea") // [A]public interface AdvertGroupRemoteService { @RequestMapping(value = "/group/{groupId}", method = RequestMethod.GET) // [B] AdvertGroupVO findByGroupId(@PathVariable("groupId") Integer adGroupId) // [C] @RequestMapping(value = "/group/{groupId}", method = RequestMethod.PUT) void update(@PathVariable("groupId") Integer groupId, @RequestParam("groupName") String groupName) A……

网友NO.405639

详解Spring Cloud Gateway基于服务发现的默认路由规则

1.Spring Gateway概述 1.1 什么是Spring Cloud Gateway Spring Cloud Gateway 是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。Spring Cloud Gateway作为Spring Cloud生态系中的网关,目标是替代Netflix ZUUL,其不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。 1.2 Spring Cloud Gateway的功能 Spring Cloud Gateway 的特征: 基于 Spring Framework 5,Project Reactor 和 Spring Boot 2.0 动态路由 Predicates 和 Filters 作用于特定路由 集成 Hystrix 断路器 集成 Spring Cloud DiscoveryClient 易于编写的 Predicates 和 Filters 限流 路径重写 2. Spring Cloud Gateway的工程流程 客户端向 Spring Cloud Gateway 发出请求。然后在 Gateway Handler Mapping 中找到与请求相匹配的路由,将其发送到 Gateway Web Handler。Handler 再通过指定的过滤器链来将请求发送到我们实际的服务执行业务逻辑,然后返回。 过滤器之间用虚线分开是因为过滤器可能会在发送代理请求之前(“pre”)或之后(“post”)执行业务逻辑。 2.1 Pre和POST两种类型的过滤器 3.基于服务发现的默认路由规则 3.1 zuul和gateway的默认路由规则 3.1.1 zuul的默认路由规则 说明默认情况下,Zuul会代理所有注册到……

网友NO.448706

详解利用SpringCloud搭建一个最简单的微服务框架

Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一种简单的开发方式。 Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Config、Spring Cloud Netflix、Spring Cloud CloudFoundry、Spring Cloud AWS、Spring Cloud Security、Spring Cloud Commons、Spring Cloud Zookeeper、Spring Cloud CLI等项目。 1.微服务 微服务主要包含服务注册,服务发现,服务路由,服务配置,服务熔断,服务降级等一系列的服务,而Spring Cloud为我们提供了个一整套的服务; 本例子为你提供了最简单的一个服务发现例子,包含服务注册发现spingCloudEurekaServer、服务配置中心spingCloudConfServer、以及一个app应用springCloudApp 2.服务注册与发现 spingCloudEurekaServer pom.xml project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" modelVersion4.0.0/modelVersion groupIdcom.caicongyang/groupId artifactIdspingCloudEurekaServer/artifactId version0.0.1-SNAPSHOT/version parent groupIdorg.springframework.cloud/groupId artifactIdspring-cloud-starter-parent/artifactId versionA……

网友NO.30994
网友NO.30994

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

网友NO.37333
网友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
网友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开发者,特别希望能为从事微服务开发和架构的读者提供一些帮助。

小锋

小锋 发起

资源
26
粉丝
21
喜欢
872
评论
3

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明