目 录
第1章 Spring Boot 2.0 1
1.1 Spring Boot概述 2
1.2 利用Spring Boot简化应用程序开发 3
1.3 Spring Boot中的核心组件 5
1.3.1 Spring Boot Starter 5
1.3.2 Spring Boot Starter Parent POM 7
1.3.3 Spring Boot auto-configuration 7
1.3.4 启用Spring Boot auto-configuration 9
1.3.5 Spring Boot CLI 11
1.3.6 Spring Boot Actuator 11
1.4 设置Spring Boot工作区 12
1.4.1 利用Maven设置Spring Boot 13
1.4.2 利用Gradle设置Spring Boot 13
1.5 开发第一个Spring Boot应用程序 15
1.5.1 使用Web界面 15
1.5.2 利用STS IDE创建Spring Boot项目 17
1.6 实现REST服务 19
1.7 Spring Boot 2.0中的新特性 22
1.8 本章小结 22
第2章 定制auto-configuration 25
2.1 理解auto-configuration 26
2.2 定制Spring Boot 27
2.2.1 利用Spring Boot属性进行定制 27
2.2.2 替换已生成的Bean 29
2.2.3 禁用特定的auto-configuration类 29
2.2.4 修改库的依赖关系 30
2.3 基于属性的配置外部化 31
2.3.1 属性的评估顺序 31
2.3.2 重命名Spring应用程序中的application.properties 32
2.4 外部配置应用程序属性 33
2.5 基于日志记录的调优 35
2.6 YAML配置文件 36
2.6.1 针对属性的YAML 36
2.6.2 单一YAML文件中的多个属性 37
2.7 定制应用程序错误页面 37
2.8 本章小结 39
第3章 Spring CLI和Actuator 41
3.1 使用Spring Boot CLI 41
3.1.1 安装Spring Boot CLI 42
3.1.2 从安装文件中手动安装Spring Boot CLI 42
3.1.3 使用SDKMAN!安装Spring Boot CLI 43
3.1.4 利用OSX Homebrew安装Spring Boot CLI 43
3.2 使用Initializr 44
3.3 Spring Boot Actuator 48
3.3.1 在应用程序中启用Spring Boot Actuator 49
3.3.2 分析Actuator的端点 49
3.3.3 显示配置细节 51
3.3.4 显示指标端点 56
3.3.5 显示应用程序信息 57
3.3.6 关闭应用程序 59
3.3.7 自定义Actuator端点 59
3.3.8 创建一个自定义端点 64
3.4 Actuator端点的安全性 66
3.5 Spring Boot 2.x中的Actuator 67
3.6 本章小结 68
第4章 Spring Cloud和配置操作 69
4.1 原生云应用程序架构 69
4.1.1 微服务架构 71
4.1.2 微服务的优点 72
4.1.3 微服务面临的挑战 73
4.2 Spring Cloud简介 74
4.2.1 云和微服务程序的构造块 74
4.2.2 Spring Cloud应用 76
4.3 配置Spring Cloud应用程序 77
4.4 创建配置生成器—Spring Cloud Config Server 78
4.5 实现Cloud Config Server 79
4.5.1 配置application.properties文件 80
4.5.2 创建Git存储库作为配置存储 80
4.6 利用模式配置多个存储库 83
4.6.1 身份验证 84
4.6.2 force-pull属性 85
4.7 创建Spring Cloud客户端 85
4.8 本章小结 87
第5章 Spring Cloud Netflix和Service Discovery 89
5.1 Spring Cloud Netflix简介 89
5.2 微服务架构中的Service Discovery 90
5.3 实现Service Discovery—Eureka Server 92
5.3.1 Maven构建配置文件 92
5.3.2 Gradle构建配置文件 93
5.3.3 启用Eureka服务器作为Discovery Service服务器 94
5.4 实现Service Discovery—Eureka客户端 96
5.4.1 添加Maven依赖关系配置 96
5.4.2 Gradle构建配置 98
5.5 利用Eureka注册客户端 99
5.5.1 使用REST服务 102
5.5.2 使用EurekaClient 102
5.5.3 Feign Client 107
5.6 本章小结 111
第6章 构建Spring Boot RESTful微服务 113
6.1 基于Spring Boot的微服务 113
6.1.1 bootstrap.yml和application.yml简介 114
6.1.2 简单的微服务示例 115
6.2 Spring Data简介 128
6.2.1 Apache Ignite存储库 129
6.2.2 Spring Data MongoDB 129
6.2.3 Spring Data JPA 130
6.3 本章小结 130
第7章 利用Netflix Zuul创建API网关 133
7.1 API网关模式需求 133
7.1.1 API Gateway模式的优点 135
7.1.2 API Gateway的一些缺点 135
7.1.3 API Gateway模式组件 135
7.2 利用Netflix Zuul Proxy实现API Gateway 136
7.2.1 利用Maven依赖关系包含Zuul 137
7.2.2 启用Zuul服务代理 137
7.2.3 配置Zuul属性 138
7.2.4 添加过滤器 141
7.3 本章小结 144
第8章 利用Feign客户端简化HTTP API 145
8.1 Feign基础知识 145
8.2 在云应用程序中包含Feign 148
8.2.1 重载Feign的默认配置 153
8.2.2 创建Feign客户端 155
8.2.3 Feign继承机制 156
8.2.4 多重继承 156
8.3 Feign客户端的高级应用 157
8.4 异常处理 158
8.5 自定义编码器和解码器 159
8.5.1 自定义编码器 160
8.5.2 自定义解码器 161
8.6 Feign和Hystrix 161
8.7 Feign客户端单元测试 163
8.8 本章小结 164
第9章 构建事件驱动和异步响应式系统 165
9.1 事件驱动型架构模式 165
9.1.1 调停者拓扑 165
9.1.2 代理拓扑 166
9.2 响应式编程简介 167
9.2.1 Spring Reactive 167
9.2.2 ReactiveX 168
9.3 命令查询的责任分离简介 168
9.3.1 Event Sourcing模式简介 170
9.3.2 最终一致性 171
9.4 构建事件驱动型响应式异步系统 172
9.5 Spring Cloud Streaming简介 173
9.5.1 向应用程序中添加Kafka 174
9.5.2 安装和运行Kafka 175
9.5.3 Kafka配置属性 175
9.5.4 用于写入Kafka的服务 176
9.5.5 Rest API控制器 177
9.5.6 监听Kafka主题 177
9.6 本章小结 181
第10章 利用Hystrix和Turbine构建弹性系统 183
10.1 断路器模式 184
10.2 使用Hystrix library 186
10.3 在应用程序中配置Hystrix 187
10.3.1 Maven依赖关系 188
10.3.2 启用断路器 188
10.3.3 向服务中添加Hystrix注解 189
10.3.4 错误传递 192
10.4 在客户服务中实现REST控制器 192
10.5 构建和测试客户服务 195
10.6 自定义默认的配置项 196
10.7 Hystrix Metrics Stream 198
10.8 在项目中实现Hystrix Dashboard 199
10.9 Turbine仪表盘 201
10.10 基于Hystrix和Feign的REST使用者 204
10.11 本章小结 206
第11章 测试Spring Boot应用程序 207
11.1 测试驱动开发 207
11.2 单元测试机制 208
11.2.1 单元测试的优点 211
11.2.2 单元测试的缺点 212
11.2.3 其他模拟库 212
11.3 集成测试 212
11.3.1 Spring测试的优点 214
11.3.2 激活测试类的配置 214
11.4 Spring Boot应用程序的JUnit测试 214
11.5 使用Mockito模拟服务 216
11.6 测试RESTful服务契约的Postman 217
11.7 本章小结 220
第12章 微服务的容器化 221
12.1 微服务架构的容器 222
12.1.1 虚拟机和容器 222
12.1.2 容器方案的优点 224
12.1.3 面向容器方案的缺点 224
12.2 Docker简介 225
12.2.1 安装Docker 226
12.2.2 在Linux上安装Docker 226
12.2.3 在Windows中安装Docker 227
12.2.4 Docker架构 229
12.2.5 Docker引擎 231
12.2.6 Docker容器 232
12.2.7 编写Dockerfile 233
12.3 Docker化Spring Boot应用程序 235
12.4 利用Maven创建Docker镜像 239
12.5 Docker Compose简介 240
12.5.1 安装Docker Compose 241
12.5.2 使用Docker Compose 242
12.5.3 编写docker-compose文件 242
12.5.4 基于docker-compose文件的编排操作 244
12.5.5 利用docker-compose和负载平衡扩展容器 247
12.6 Kubernetes简介 248
12.7 本章小结 249
第13章 API管理器 251
13.1 API管理 251
13.1.1 API管理软件的优点 252
13.1.2 API管理工具 252
13.2 速率限制 252
13.3 KONG简介 253
13.3.1 基于KONG架构的微服务REST API 254
13.3.2 未采用KONG架构的API应用 255
13.3.3 安装KONG 255
13.3.4 使用KONG API 257
13.4 Swagger 265
13.4.1 Swagger应用 265
13.4.2 在微服务中使用Swagger 266
13.4.3 Swagger的优点 277
13.5 本章小结 278
第14章 云部署(AWS) 279
14.1 AWS EC2实例 279
14.2 AWS上的微服务架构 284
14.3 在AWS EC2上安装Docker 289
14.4 在AWS EC2上运行微服务 291
14.5 本章小结 293
第15章 生产服务监视和最佳实践 295
15.1 监视容器 295
15.2 日志机制所面临的挑战 295
15.3 微服务架构的中心日志方案 297
15.3.1 基于ELK栈的日志聚合 299
15.3.2 使用Sleuth的请求跟踪 306
15.3.3 基于Zipkin的请求跟踪 310
15.4 本章小结 315
· · · · · · (
收起)