深入理解Spring Cloud与实战+Spring Boot编程思想 核心篇 方剑 各个核心组件设计原理流处理批处理Serverless支持 编程语言书籍
运费: | 免运费 |
商品详情
定价:224.0
ISBN:9787121399732
作者:无、小马哥(mercyblitz)
版次:1
出版时间:2020-12
内容提要:
本书共分10章,主要介绍Spring Cloud各个核心组件的设计原理,以及目前流行的Spring Cloud ????和 Netflix组件,并且剖析Spring Cloud对流处理、批处理,以及目前业界流行的Serverless的支持。在介绍各部分内容时,本书将理论与实践相结合,对每个核心知识点给出了具体的案例应用,以帮助读者掌握核心组件的设计理念。
作者简介:
方剑,花名洛夜,Spring Cloud ???? 开源项目负责人/创始人之一。Apache RocketMQ Committer,???? Nacos Committer。目前就职于阿里巴巴集团。曾在个人博客上编写过《Spring MVC源码分析系列》、《Spring Boot源码分析系列》文章。目前,关注微服务、云原生、Kubernetes。
小马哥(mercyblitz)
“我是谁?”是一个不错的哲学问题。
在“江湖”上,大家亲切地称我为“小马哥”,我做公益,也做生意;在社区中,我又以 mercyblitz的身份出没在众多开源项目中,“mercy”符合我的性格,“blitz”说明我的风格。
承蒙错爱,不少朋友对我过去的分享称赞有加,然而“千夫诺诺,不如一士谔谔”,时常又让自己陷入一种迷思,到底是平台的帮衬,还是个人的确禁得起考验?于是我选择隐匿真名,希望能够听到更真实的声音。尽管在互联网时代,个人信息几乎无处遁形。无可讳言,我所属的公司及职业头衔必然会形成“舞台效应”,如此一来,不但违背了写书的初衷,而且模糊了讨论的焦点。所以,本书既不会出现这些信息,又不会搞“个人崇拜”。它的价值应该体现在知识的传播上,至于它的优劣则由诸君来评判。
Apache Dubbo PMC、Spring Cloud Alibaba项目架构师。目前主要负责集团中间件开源项目、微服务技术实施、架构演进、基础设施构建等工作。通过了SUN Java(SCJP、SCWCD、SCBCD)及Oracle OCA等认证。
目录:
第1章 Spring Cloud生态 1
1.1 Spring Cloud 基础:Spring Boot概述 1
1.2 Spring Boot核心特性 3
1.2.1 Web服务器:WebServer 3
1.2.2 条件注解:@ConditionalOnXX 7
1.2.3 工厂加载机制 10
1.2.4 配置加载机制 12
1.2.5 Spring Boot Actuator 15
1.3 Spring Cloud 概述 17
1.3.1 Spring Cloud诞生背景 17
1.3.2 Netflix OSS 19
1.3.3 Spring Cloud项目 20
1.3.4 Spring Cloud 版本 21
1.3.5 Spring Cloud *新动态 23
第2章 服务注册与服务发现 26
2.1 微服务架构演进 26
2.2 使用??? Nacos体验**个Spring Cloud微服务应用 29
2.2.1 下载并启动Nacos Server 30
2.2.2 启动 Nacos Discovery Provider 进行服务注册 32
2.2.3 启动 Nacos Discovery Consumer 进行服务发现 33
2.3 使用Netflix Eureka替换???? Nacos注册中心 36
2.3.1 启动Eureka Server 37
2.3.2 启动 Eureka Discovery Provider 进行服务注册 38
2.3.3 启动 Nacos Discovery Consumer 进行服务发现 39
2.4 Spring Cloud 统一服务注册/发现编程模型 40
2.4.1 DiscoveryClient和ReactiveDiscoveryClient 40
2.4.2 ServiceInstance和Registration 44
2.4.3 ServiceRegistry 48
2.4.4 ServiceRegistryEndpoint 50
2.5 双注册双订阅模式 51
2.5.1 双注册双订阅模式分析 51
2.5.2 案例:使用双注册双订阅模式迁移Eureka注册中心到Nacos注册中心 54
第3章 负载均衡与服务调用 57
3.1 负载均衡原理 57
3.2 Spring Cloud LoadBalancer负载均衡组件 59
3.3 Netflix Ribbon负载均衡 74
3.3.1 RibbonLoadBalancerClient 74
3.3.2 RibbonServer和Server 79
3.3.3 ServerIntrospector 82
3.3.4 ILoadBalancer 84
3.3.5 ServerList 87
3.3.6 ServerListUpdater 90
3.3.7 ServerStats 92
3.3.8 Netflix Ribbon配置项总结 94
3.3.9 Ribbon缓存时间 97
3.4 Dubbo LoadBalance 负载均衡 98
3.5 OpenFeign:声明式Rest客户端 100
3.5.1 OpenFeign概述 100
3.5.2 OpenFeign 对 JAX-RS 的支持 102
3.5.3 OpenFeign 底层执行原理 103
3.6 Dubbo Spring Cloud :服务调用的新选择 105
3.7 再谈路由和负载均衡 111
3.8 案例:应用流量控制 112
3.8.1 流量控制可以解决的业务场景 113
3.8.2 使用 Netflix Ribbon 完成应用灰度发布 115
第4章 配置管理 119
4.1 配置中心背景概述 119
4.2 Spring/Spring Boot 与配置 120
4.3 Spring Cloud与配置 122
4.3.1 使用???? Nacos体验配置的获取以及动态刷新 123
4.3.2 从Spring Cloud 配置中心获取配置原理 125
4.3.3 Spring Cloud配置动态刷新 135
4.4 Spring Cloud Config Server/Client 151
4.4.1 Spring Cloud Config Server 151
4.4.2 Spring Cloud Config Client 165
4.4.3 Spring Cloud Config Client 与 Service Discovery 整合 171
4.4.4 Spring Cloud Config 配置动态更新 174
4.5 再谈配置动态刷新 175
4.6 案例:Spring Cloud应用流量控制策略动态生效 179
第5章 熔断器 184
5.1 熔断器模式概述 184
5.2 手动实现一个断路器 186
5.2.1 定义 State 枚举和 Counter 计数器类 186
5.2.2 定义 CircuitBreaker 类 188
5.2.3 使用 CircuitBreaker 进行场景测试 191
5.3 Spring Cloud Circuit Breaker 技术演进 193
5.4 ······· Sentinel 199
5.4.1 Sentinel的核心概述 199
5.4.2 Spring Cloud ····· Sentinel 204
5.4.3 Sentinel 与 OpenFeign和RestTemplate 207
5.4.4 Sentinel限流与Dashboard 211
5.4.5 Sentinel 高级特性 215
5.5 Netflix Hystrix 219
5.5.1 Hystrix核心概述 219
5.5.2 Spring Cloud Netflix Hystrix 225
5.5.3 Hystrix限流与Dashboard 227
5.5.4 Hystrix 高级特性 231
5.6 Resilience4j 235
5.6.1 Resilience4j 体验 236
5.6.2 Spring Cloud Resilience4j 241
5.6.3 Resilience4j 高级特性 244
5.7 案例:使用 Sentinel 保护应用,防止服务雪崩 248
第6章 Spring生态消息驱动 253
6.1 消息中间件概述 254
6.2 Spring与消息 257
6.2.1 消息编程模型的统一 257
6.2.2 消息发送和订阅 258
6.2.3 WebSocket 265
6.2.4 案例:使用spring-messaging处理WebSocket 268
6.3 Spring Integration 271
6.3.1 Spring Integration 核心组件概述 272
6.3.2 Spring Integration核心组件使用 275
6.4 Spring Cloud Stream 277
6.4.1 使用Spring Cloud Stream发送和接收消息 277
6.4.2 理解 Binder 和 Binding 280
6.4.3 深入理解Spring Cloud Stream 282
6.4.4 高级特性 284
第7章 消息总线 295
7.1 消息总线概述 295
7.2 深入理解Spring Cloud Bus 296
7.2.1 Spring Cloud Bus的使用 297
7.2.2 Spring Cloud Bus的原理 300
7.2.3 Spring Cloud Bus 事件 302
7.2.4 Spring Cloud Bus 源码分析 305
7.3 案例:使用Spring Cloud Bus完成多节点配置动态刷新 309
第8章 Spring Cloud Data Flow 311
8.1 批处理/流处理概述 312
8.2 流处理案例:信用卡反欺诈系统 315
8.3 批处理案例:统计GitHub仓库的各项指标数据 323
8.4 Spring Cloud Data Flow批处理任务组合 331
8.5 Spring Cloud Data Flow Shell 335
8.6 Spring Cloud Skipper 337
8.7 Spring Cloud Deployer 341
8.7.1 TaskLauncher 接口 342
8.7.2 AppDeployer 接口 344
8.7.3 LocalAppDeployer 348
8.8 Spring Cloud Task 349
8.8.1 体验Spring Cloud Task 349
8.8.2 深入理解Spring Cloud Task 351
8.8.3 Spring Cloud Task Batch 354
8.9 Spring Batch 358
8.9.1 Spring Batch 核心组件 358
8.9.2 案例:使用 Spring Batch 完成便利店每日账单统计 361
第9章 网关 366
9.1 API网关概述 366
9.2 Netflix Zuul 368
9.3 非阻塞式的Spring Cloud Gateway 371
9.4 Route路由信息 376
9.5 Predicate机制 377
9.5.1 PredicateDefinition和AsyncPredicate 377
9.5.2 RoutePredicateFactory 378
9.5.3 内置RoutePredicateFactory 381
9.6 Filter机制 382
9.6.1 FilterDefinition和GatewayFilter 382
9.6.2 GlobalFilter 386
9.6.3 内置 GatewayFilterFactory 387
9.6.4 网关内置的GlobalFilter 390
9.7 整合注册中心和配置中心 391
9.8 GatewayControllerEndpoint 397
9.9 案例:使用Spring Cloud Gateway进行路由转发 398
第10章 Spring Cloud与Serverless 401
10.1 Serverless 401
10.2 Java Function 403
10.3 Spring Cloud Function 405
10.4 Spring Cloud Function与Spring生态的整合 411
10.4.1 Spring Cloud Function与Spring Web/WebFlux 412
10.4.2 Spring Cloud Function 与 Spring Cloud Stream 420
10.4.3 Spring Cloud Function 与 Spring Cloud Task 427
10.5 案例:使用GCP Cloud Functions体验Spring Cloud Function 430
第1部分 总览Spring Boot
第1章初览Spring Boot
1.1 Spring Framework时代
1.2 Spring Boot简介
1.3 Spring Boot的特性
1.4 准备运行环境
1.4.1 装配JDK 8
1.4.2 装配Maven
1.4.3 装配IDE(集成开发环境)
第2章理解独立的Spring应用
2.1 创建Spring Boot应用
2.1.1 命令行方式创建Spring Boot应用
2.1.2 图形化界面创建Spring Boot应用
2.1.3 创建Spring Boot应用可执行JAR
2.2 运行Spring Boot应用
2.2.1 执行Spring Boot应用可执行JAR
2.2.2 Spring Boot应用可执行JAR资源结构
2.2.3 FAT JAR和WAR执行模块——spring-boot-loader
2.2.4 JarLauncher的实现原理
第3章理解固化的Maven依赖
3.1 spring-boot-starter-parent与spring-boot-dependencies简介
3.2 理解spring-boot-starter-parent与spring-boot- dependencies
第4章理解嵌入式Web容器
4.1 嵌入式Servlet Web容器
4.1.1 Tomcat作为嵌入式Servlet Web容器
4.1.2 Jetty作为嵌入式Servlet Web容器
4.1.3 Undertow作为嵌入式Servlet Web容器
4.2 嵌入式Reactive Web容器
4.2.1 UndertowServletWebServer作为嵌入式Reactive Web容器
4.2.2 UndertowWebServer作为嵌入式Reactive Web容器
4.2.3 WebServerInitializedEvent
4.2.4 Jetty作为嵌入式Reactive Web容器
4.2.5 Tomcat作为嵌入式Reactive Web容器
第5章理解自动装配
5.1 理解@SpringBootApplication注解语义
5.2 @SpringBootApplication属性别名
5.3 @SpringBootApplication标注非引导类
5.4 @EnableAutoConfiguration激活自动装配
5.5 @SpringBootApplication“继承”@Configuration CGLIB提升特性
5.6 理解自动配置机制
5.7 创建自动配置类
第6章理解Production- Ready特性
6.1 理解Production-Ready一般性定义
6.2 理解Spring Boot Actuator
6.3 Spring Boot Actuator Endpoints
6.4 理解“外部化配置
6.5 理解“规约大于配置”
6.6 小马哥有话说
6.6.1 Spring Boot作为微服务中间件
6.6.2 Spring Boot作为Spring Cloud基础设施
6.7 下一站:走向自动装配
第2部分 走向自动装配
第7章走向注解驱动编程(Annotation-Driven)
7.1 注解驱动发展史
7.1.1 注解驱动启蒙时代:Spring Framework 1.x
7.1.2 注解驱动过渡时代:Spring Framework 2.x
7.1.3 注解驱动黄金时代:Spring Framework 3.x
7.1.4 注解驱动完善时代:Spring Framework 4.x
7.1.5 注解驱动当下时代:Spring Framework 5.x
7.2 Spring核心注解场景分类
7.3 Spring注解编程模型
7.3.1 元注解(Meta-Annotations)
7.3.2 Spring模式注解(Stereotype Annotations)
7.3.3 Spring组合注解(Composed Annotations)
7.3.4 Spring注解属性别名和覆盖(Attribute Aliases and Overrides)
第8章Spring注解驱动设计模式
8.1 Spring @Enable模块驱动
8.1.1 理解@Enable模块驱动
8.1.2 自定义@Enable模块驱动
8.1.3 @Enable模块驱动原理
8.2 Spring Web自动装配
8.2.1 理解Web自动装配
8.2.2 自定义Web自动装配
8.2.3 Web自动装配原理
8.3 Spring条件装配
8.3.1 理解配置条件装配
8.3.2 自定义配置条件装配
8.3.3 配置条件装配原理
第9章Spring Boot自动装配
9.1 理解Spring Boot自动装配
9.1.1 理解@EnableAutoConfiguration
9.1.2 优雅地替换自动装配
9.1.3 失效自动装配
9.2 Spring Boot自动装配原理
9.2.1 @EnableAutoConfiguration读取候选装配组件
9.2.2 @EnableAutoConfiguration排除自动装配组件
- 电子工业出版社有限公司
- 电子工业出版社有限公司有赞官方供货商,为客户提供一流的知识产品及服务。
- 扫描二维码,访问我们的微信店铺