封面
版权信息
版权
内容提要
序
前言
资源与支持
第1章 微服务简介
1.1 单体架构及其存在的不足
1.1.1 单体架构简介
1.1.2 单体架构存在的不足
1.1.3 单体架构使用服务器集群及存在的不足
1.2 微服务
1.2.1 什么是微服务
1.2.2 微服务的优势
1.3 微服务的不足
1.3.1 微服务的复杂度
1.3.2 分布式事务
1.3.3 服务的划分
1.3.4 服务的部署
1.4 微服务和SOA的关系
1.5 微服务的设计原则
第2章 Spring Cloud简介
2.1 微服务应该具备的功能
2.1.1 服务的注册与发现
2.1.2 服务的负载均衡
2.1.3 服务的容错
2.1.4 服务网关
2.1.5 服务配置的统一管理
2.1.6 服务链路追踪
2.2 Spring Cloud
2.2.1 简介
2.2.2 常用组件
2.2.3 项目一览
2.3 Dubbo简介
2.4 Spring Cloud与Dubbo比较
2.5 Kubernetes简介
2.6 Spring Could与Kubernetes比较
2.7 总结
第3章 构建微服务的准备
3.1 JDK的安装
3.1.1 JDK的下载和安装
3.1.2 环境变量的配置
3.2 IDEA的安装
3.2.1 IDEA的下载
3.2.2 用IDEA创建一个Spring Boot工程
3.2.3 用IDEA启动多个Spring Boot工程实例
3.3 构建工具Maven的使用
3.3.1 Maven简介
3.3.2 Maven的安装
3.3.3 Maven的核心概念
3.3.4 编写Pom文件
3.3.5 Maven构建项目的生命周期
3.3.6 常用的Maven命令
第4章 开发框架Spring Boot
4.1 Spring Boot简介
4.1.1 Spring Boot的特点
4.1.2 Spring Boot的优点
4.2 用IDEA构建Spring Boot工程
4.2.1 项目结构
4.2.2 在Spring Boot工程中构建Web程序
4.2.3 Spring Boot的测试
4.3 Spring Boot配置文件详解
4.3.1 自定义属性
4.3.2 将配置文件的属性赋给实体类
4.3.3 自定义配置文件
4.3.4 多个环境的配置文件
4.4 运行状态监控Actuator
4.4.1 查看运行程序的健康状态
4.4.2 查看运行程序的Bean
4.4.3 使用Actuator关闭应用程序
4.4.4 使用shell连接Actuator
4.5 Spring Boot整合JPA
4.6 Spring Boot整合Redis
4.6.1 Redis简介
4.6.2 Redis的安装
4.6.3 在Spring Boot中使用Redis
4.7 Spring Boot整合Swagger2,搭建Restful API在线文档
第5章 服务注册和发现Eureka
5.1 Eureka简介
5.1.1 什么是Eureka
5.1.2 为什么选择Eureka
5.1.3 Eureka的基本架构
5.2 编写Eureka Server
5.3 编写Eureka Client
5.4 源码解析Eureka
5.4.1 Eureka的一些概念
5.4.2 Eureka的高可用架构
5.4.3 Register服务注册
5.4.4 Renew服务续约
5.4.5 为什么Eureka Client获取服务实例这么慢
5.4.6 Eureka的自我保护模式
5.5 构建高可用的Eureka Server集群
5.6 总结
第6章 负载均衡Ribbon
6.1 RestTemplate简介
6.2 Ribbon简介
6.3 使用RestTemplate和Ribbon来消费服务
6.4 LoadBalancerClient简介
6.5 源码解析Ribbon
第7章 声明式调用Feign
7.1 写一个Feign客户端
7.2 FeignClient详解
7.3 FeignClient的配置
7.4 从源码的角度讲解Feign的工作原理
7.5 在Feign中使用HttpClient和OkHttp
7.6 Feign是如何实现负载均衡的
7.7 总结
第8章 熔断器Hystrix
8.1 Hystrix简介
8.2 Hystrix解决的问题
8.3 Hystrix的设计原则
8.4 Hystrix的工作机制
8.5 在RestTemplate和Ribbon上使用熔断器
8.6 在Feign上使用熔断器
8.7 使用Hystrix Dashboard监控熔断器的状态
8.7.1 在RestTemplate中使用Hystrix Dashboard
8.7.2 在Feign中使用Hystrix Dashboard
8.8 使用Turbine聚合监控
第9章 路由网关Spring Cloud Zuul
9.1 为什么需要Zuul
9.2 Zuul的工作原理
9.3 案例实战
9.3.1 搭建Zuul服务
9.3.2 在Zuul上配置API接口的版本号
9.3.3 在Zuul上配置熔断器
9.3.4 在Zuul中使用过滤器
9.3.5 Zuul的常见使用方式
第10章 服务网关
10.1 服务网关的实现原理
10.2 断言工厂
10.2.1 After路由断言工厂
10.2.2 Header断言工厂
10.2.3 Cookie路由断言工厂
10.2.4 Host路由断言工厂
10.2.5 Method路由断言工厂
10.2.6 Path 路由断言工厂
10.2.7 Query 路由断言工厂
10.3 过滤器
10.3.1 过滤器的作用
10.3.2 过滤器的生命周期
10.3.3 网关过滤器
10.3.4 全局过滤器
10.4 限流
10.4.1 常见的限流算法
10.4.2 服务网关的限流
10.5 服务化
10.5.1 工程介绍
10.5.2 service-gateway工程详细介绍
10.6 总结
第11章 服务注册和发现Consul
11.1 什么是Consul
11.1.1 基本术语
11.1.2 Consul的特点和功能
11.1.3 Consul的原理
11.1.4 Consul的基本架构
11.1.5 Consul服务注册发现流程
11.2 Consul与Eureka比较
11.3 下载和安装Consul
11.4 使用Spring Cloud Consul进行服务注册和发现
11.4.1 服务提供者consul-provider
11.4.2 服务消费者consul-provider
11.5 使用Spring Cloud Consul Config做服务配置中心
11.6 动态刷新配置
11.7 总结
第12章 配置中心Spring Cloud Config
12.1 Config Server从本地读取配置文件
12.1.1 构建Config Server
12.1.2 构建Config Client
12.2 Config Server从远程Git仓库读取配置文件
12.3 构建高可用的Config Server
12.3.1 构建Eureka Server
12.3.2 改造Config Server
12.3.3 改造Config Client
12.4 使用Spring Cloud Bus刷新配置
12.5 将配置存储在MySQL数据库中
12.5.1 改造config-server工程
12.5.2 初始化数据库
第13章 服务链路追踪Spring Cloud Sleuth
13.1 为什么需要Spring Cloud Sleuth
13.2 基本术语
13.3 案例讲解
13.3.1 启动Zipkin Server
13.3.2 构建服务提供者
13.3.3 构建服务消费者
13.3.4 项目演示
13.4 在链路数据中添加自定义数据
13.5 使用RabbitMQ传输链路数据
13.6 在MySQL数据库中存储链路数据
13.7 在ElasticSearch中存储链路数据
13.8 用Kibana展示链路数据
第14章 微服务监控Spring Boot Admin
14.1 使用Spring Boot Admin监控Spring Boot应用程序
14.1.1 创建Spring Boot Admin Server
14.1.2 创建Spring Boot Admin Client
14.2 使用Spring Boot Admin监控Spring Cloud微服务
14.2.1 构建Admin Server
14.2.2 构建Admin Client
14.3 在Spring Boot Admin中添加Security和Mail组件
14.3.1 Spring Boot Admin集成Security组件
14.3.2 Spring Boot Admin集成Mail组件
第15章 Spring Boot Security详解
15.1 Spring Security简介
15.1.1 什么是Spring Security
15.1.2 为什么选择Spring Security
15.1.3 Spring Security提供的安全模块
15.2 Spring Boot Security与Spring Security的关系
15.3 Spring Boot Security案例详解
15.3.1 构建Spring Boot Security工程
15.3.2 配置Spring Security
15.3.3 编写相关界面
15.3.4 Spring Security方法级别上的保护
15.3.5 从数据库中读取用户的认证信息
15.4 总结
第16章 使用Spring Cloud OAuth2保护微服务系统
16.1 什么是OAuth2
16.2 如何使用Spring OAuth2
16.2.1 OAuth2 Provider
16.2.2 OAuth2 Client
16.3 案例分析
16.3.1 编写Eureka Server
16.3.2 编写Uaa授权服务
16.3.3 编写service-hi资源服务
16.4 总结
第17章 使用Spring Security OAuth2和JWT保护微服务系统
17.1 JWT简介
17.1.1 什么是JWT
17.1.2 JWT的结构
17.1.3 JWT的应用场景
17.1.4 如何使用JWT
17.2 案例分析
17.2.1 案例架构设计
17.2.2 编写主Maven工程
17.2.3 编写Eureka Server
17.2.4 编写Uaa授权服务
17.2.5 编写user-service资源服务
17.3 总结
第18章 使用Spring Cloud构建微服务综合案例
18.1 案例介绍
18.1.1 工程结构
18.1.2 使用的技术栈
18.1.3 工程架构
18.1.4 功能展示
18.2 案例详解
18.2.1 准备工作
18.2.2 构建主Maven工程
18.2.3 构建eureka-server工程
18.2.4 构建config-server工程
18.2.5 构建Zipkin工程
18.2.6 构建monitoring-service工程
18.2.7 构建uaa-service工程
18.2.8 构建gateway-service工程
18.2.9 构建admin-service工程
18.2.10 构建user-service工程
18.2.11 构建blog-service工程
18.2.12 构建log-service工程
18.3 启动源码工程
18.4 项目演示
18.5 总结
更新时间:2020-04-14 15:18:42