目 录?Contents
前言
第一部分 准备篇
第1章 Spring Cloud与微服务概述 2
1.1 传统的单体应用 2
1.1.1 改进单体应用的架构 2
1.1.2 向微服务靠拢 3
1.2 什么是微服务 4
1.2.1 使用微服务架构的优势和劣势 4
1.2.2 重构前的准备工作 5
1.3 什么是Spring Cloud 5
1.3.1 Spring Cloud模块介绍 5
1.3.2 Spring Cloud版本介绍 6
1.4 本章小结 7
第2章 实战前的准备工作 8
2.1 开发环境的准备 8
2.2 Spring Boot入门 9
2.2.1 Spring Boot简介 9
2.2.2 搭建Spring Boot项目 9
2.2.3 编写第一个REST接口 11
2.2.4 读取配置文件 11
2.2.5 profiles多环境配置 13
2.2.6 热部署 13
2.2.7 actuator监控 15
2.2.8 统一异常处理 16
2.2.9 异步执行 18
2.2.10 随机端口 21
2.3 本章小结 23
第二部分 基础篇
第3章 Eureka注册中心 26
3.1 Eureka 26
3.2 使用Eureka编写注册中心服务 27
3.3 编写服务提供者 29
3.3.1 创建项目注册到Eureka 29
3.3.2 编写提供接口 30
3.4 编写服务消费者 31
3.4.1 直接调用接口 31
3.4.2 通过Eureka来消费接口 32
3.5 开启Eureka认证 33
3.6 Eureka高可用搭建 33
3.6.1 高可用原理 33
3.6.2 搭建步骤 34
3.7 常用配置讲解 35
3.7.1 关闭自我保护 35
3.7.2 自定义Eureka的Instance ID 35
3.7.3 自定义实例跳转链接 36
3.7.4 快速移除已经失效的服务信息 37
3.8 扩展使用 38
3.8.1 Eureka REST API 38
3.8.2 元数据使用 40
3.8.3 EurekaClient使用 41
3.8.4 健康检查 43
3.8.5 服务上下线监控 45
3.9 本章小结 46
第4章 客户端负载均衡Ribbon 47
4.1 Ribbon 47
4.1.1 Ribbon模块 47
4.1.2 Ribbon使用 48
4.2 RestTemplate结合Ribbon使用 49
4.2.1 使用RestTemplate与整合Ribbon 49
4.2.2 RestTemplate负载均衡示例 52
4.2.3 @LoadBalanced注解原理 53
4.2.4 Ribbon API使用 57
4.2.5 Ribbon饥饿加载 58
4.3 负载均衡策略介绍 59
4.4 自定义负载策略 60
4.5 配置详解 61
4.5.1 常用配置 61
4.5.2 代码配置Ribbon 62
4.6 重试机制 63
4.7 本章小结 64
第5章 声明式REST客户端Feign 65
5.1 使用Feign调用服务接口 65
5.1.1 在Spring Cloud中集成Feign 66
5.1.2 使用Feign调用接口 66
5.2 自定义Feign的配置 67
5.2.1 日志配置 67
5.2.2 契约配置 69
5.2.3 Basic认证配置 69
5.2.4 超时时间配置 70
5.2.5 客户端组件配置 71
5.2.6 GZIP压缩配置 72
5.2.7 编码器解码器配置 72
5.3 脱离Spring Cloud 使用Feign 73
5.3.1 原生注解方式 73
5.3.2 构建Feign对象 74
5.3.3 其他配置 75
5.4 本章小结 76
第6章 Hystrix 服务容错处理 77
6.1 Hystrix 77
6.1.1 Hystrix的简单使用 77
6.1.2 回退支持 78
6.1.3 信号量策略配置 79
6.1.4 线程隔离策略配置 79
6.1.5 结果缓存 80
6.1.6 缓存清除 81
6.1.7 合并请求 83
6.2 在Spring Cloud中使用Hystrix 84
6.2.1 简单使用 84
6.2.2 配置详解 85
6.2.3 Feign整合Hystrix服务容错 88
6.2.4 Feign中禁用Hystrix 90
6.3 Hystrix监控 91
6.4 整合Dashboard查看监控数据 92
6.5 Turbine聚合集群数据 94
6.5.1 Turbine使用 94
6.5.2 context-path导致监控失败 95
6.6 本章小结 95
第7章 API网关 96
7.1 Zuul 简介 96
7.2 使用Zuul构建微服务网关 97
7.2.1 简单使用 97
7.2.2 集成Eureka 98
7.3 Zuul路由配置 98
7.4 Zuul过滤器讲解 99
7.4.1 过滤器类型 100
7.4.2 请求生命周期 100
7.4.3 使用过滤器 101
7.4.4 过滤器禁用 103
7.4.5 过滤器中传递数据 103
7.4.6 过滤器拦截请求 104
7.4.7 过滤器中异常处理 106
7.5 Zuul容错和回退 108
7.5.1 容错机制 108
7.5.2 回退机制 109
7.6 Zuul高可用 111
7.7 本章小结 111
第三部分 实战篇
第8章 分布式配置管理 114
8.1 自研配置管理框架Smconf简介 114
8.2 Smconf工作原理 115
8.3 Smconf 部署 116
8.3.1 Mongodb安装 116
8.3.2 Zookeeper安装 117
8.3.3 Smconf Server部署 118
8.4 项目中集成Smconf 119
8.4.1 集成Smconf 119
8.4.2 使用Smconf 120
8.4.3 配置更新回调 121
8.5 Smconf详细使用 122
8.5.1 源码编译问题 122
8.5.2 后台账号管理 122
8.5.3 REST API 123
8.6 Smconf源码解析 125
8.6.1 Client启动 125
8.6.2 启动加载配置 127
8.6.3 配置修改推送原理 128
8.7 本章小结 129
第9章 Sleuth服务跟踪 130
9.1 Spring Cloud集成Sleuth 130
9.2 整合Logstash 131
9.2.1 ELK简介 131
9.2.2 输出JSON格式日志 131
9.3 整合Zipkin 133
9.3.1 创建Zipkin数据收集服务 133
9.3.2 项目集成Zipkin发送调用链数据 134
9.3