第1章 什么是微服务 1
1.1 面向服务的架构 1
1.2 微服务 1
1.3 微服务的原则 2
1.4 微服务的优势 2
1.5 Dubbo与Spring Cloud 3
第2章 微框架Spring Boot 4
2.1 Spring Boot概述 4
2.2 Spring Boot快速搭建 4
2.3 Spring Boot REST API 10
2.3.1 Spring Boot REST API控制器 12
2.3.2 @SpringBootApplication 13
2.3.3 Spring Boot REST演示 16
2.3.4 HTTP POST/employees 17
2.4 Spring Boot JUnit 17
2.4.1 Maven依赖 17
2.4.2 Spring引导JUnitTest Class 17
2.4.3 Spring引导JUnit示例 18
2.4.4 执行JUnit测试 20
2.5 Spring Boot BasicAuth 21
第3章 从服务注册与发现说起 27
3.1 Eureka 27
3.1.1 创建Eureka服务 27
3.1.2 Eureka集群 29
3.1.3 Eureka常用配置说明 31
3.2 Consul 33
3.2.1 在本地工作站中配置Consul 33
3.2.2 创建学生项目 34
3.2.3 创建学校项目 36
3.3 ZooKeeper 39
第4章 服务提供者与服务消费者的关系 43
4.1 接口就是规范 43
4.2 抽象接口 45
4.3 构建项目至Nexus 46
4.4 服务提供者 46
4.5 服务消费者之Ribbon 48
4.6 服务消费者之Feign 50
第5章 模板引擎 53
5.1 Beetl简介 53
5.2 Beetl示例 53
第6章 服务的雪崩与熔断 60
6.1 服务雪崩效应 60
6.2 熔断设计 61
6.3 Hystrix特性与使用 62
第7章 分布式配置中心 65
7.1 Config Server(Git) 65
7.2 SVN示例与refresh接口 70
7.2.1 Config Server(SVN) 70
7.2.2 refresh接口 71
第8章 API网关 73
8.1 为什么需要APIGateway 73
8.2 Spring Cloud Zuul 75
8.3 Zuul服务过滤 77
8.4 Zuul和Nginx的对比 80
第9章 Cloud Foundry 82
9.1 Cloud Foundry部署 82
9.2 设置PWS控制台 83
9.3 创建Spring Boot应用程序 85
9.3.1 技术堆栈 85
9.3.2 生成Spring启动应用程序 86
9.3.3 添加REST控制器和端点 86
9.3.4 项目配置 87
9.3.5 在本地测试 87
9.4 部署Spring Boot应用程序 88
第10章 消息驱动 89
10.1 绑定器 89
10.2 持久化发布—订阅支持 90
10.3 消费组 90
10.4 消息分区 91
10.5 RabbitMQ消息队列 92
10.6 Kafka消息队列 94
第11章 单点登录 100
11.1 Security集成CAS 100
11.1.1 CAS Server搭建 100
11.1.2 运行CAS子系统 103
11.1.3 CAS配置SSL 104
11.1.4 Jetty配置SSL 104
11.1.5 Tomcat配置SSL 105
11.2 OAuth 2.0协议 105
11.2.1 OAuth角色 105
11.2.2 OAuth 2.0客户端 106
11.2.3 OAuth 2.0配置 113
第12章 Activity工作流 121
12.1 ProcessEngine对象 121
12.2 ActivityUtil发动机引擎 127
12.3 Activity实战 129
第13章 ElasticSearch 137
13.1 ElasticSearch主节点 137
13.2 ElasticSearch辅节点 139
13.3 ElasticSearch-head插件 140
13.4 ElasticSearch实战 142
第14章 ELK Stack 151
14.1 什么是ELK Stack 151
14.2 ELK Stack结构 151
14.3 ELK Stack配置 152
14.4 ELK Stack创建微服务 152
14.5 Logstash配置 154
14.6 Kibana配置 156
14.7 验证ELK Stack 156
第15章 多线程 158
15.1 线程的生命周期 158
15.2 线程间通信的方式 159
15.3 锁 165
15.3.1 Synchronized 165
15.3.2 Lock 165
15.3.3 Synchronized和Lock的区别 166
15.4 线程池 166
15.4.1 创建线程的逻辑 167
15.4.2 阻塞队列的策略 167
15.4.3 并发包工具类 167
15.4.4 Semaphore 168
15.4.5 CyclicBarrier 168
第16章 Redis缓存技术 170
16.1 Redis最常用的数据类型 170
16.2 创建一个Spring Boot项目 170
16.3 Redis添加配置文件 171
16.4 注入配置 171
16.5 Redis工具 174
第17章 微服务监控 182
17.1 微服务下的几个监控维度 182
17.2 关键监控指标的场景描述 182
17.3 Hystrix Dashboard熔断监控 183
17.4 Hystrix Turbine熔断集群监控 187
17.5 JConsole JVM监控 189
第18章 API文档 191
18.1 利用Swagger生成在线API 191
18.2 自定义Swagger UI风格 196
第19章 持续集成 203
19.1 Jenkins持续集成 203
19.2 Docker 207
19.3 Maven 208
19.4 Kubernetes 215
第20章 金丝雀部署 222
20.1 什么是金丝雀部署 222
20.2 如何做金丝雀部署 222
20.3 Docker私有仓库Registry 225
第21章 Spring Cloud实战 227
21.1 项目结构 227
21.2 基础服务的搭建 227
21.2.1 eureka-server微服务的注册中心 227
21.2.2 config-server配置中心的搭建 230
21.2.3 OAuth2.0鉴权中心(采用密码认证模式) 231
21.2.4 ms(生产者服务搭建)持久层采用MyBatis 246
21.2.5 ws(服务消费者)业务开发 259