第1章 微服务概述
1.1 什么是微服务
1.2 为什么微服务
1.2.1 区别
1.2.2 从单体应用说起
1.2.3 第一步切分
1.2.4 服务化所带来的问题
1.2.5 微服务的可扩展性
1.2.6 微服务与SOA的区别
1.3 常见的微服务组件
1.4 常用的微服务框架
1.4.1 Spring顶级项目
1.4.2 背景
1.4.3 社区活跃度
1.4.4 架构完整度
1.4.5 总结
1.5 微服务架构设计模式
1.6 如何实施微服务
1.7 小结
第2章 微服务设计原则
2.1 设计原则之分层架构
2.2 设计原则之统一通信协议
2.3 设计原则之单一职责
2.4 设计原则之服务拆分
2.5 设计原则之前后端分离
2.6 设计原则之版本控制
2.7 设计原则之围绕业务构建
2.8 设计原则之并发流量控制
2.9 设计原则之CAP
2.10 设计原则之EDA事件驱动
2.11 设计原则之CQRS
2.12 设计原则之基础设施自动化
2.13 设计原则之数据一致性
2.14 设计原则之设计模式
2.15 设计原则之DevOps
2.16 设计原则之无状态服务
2.17 小结
第3章 微服务之Spring Boot
3.1 一切从简单开始
3.2 快速集成第三方的Starter
3.3 降低开发复杂度之面向切面
3.3.1 前置通知
3.3.2 后置返回通知
3.3.3 后置异常通知
3.3.4 后置最终通知
3.3.5 环绕通知
3.3.6 AOP总结
3.4 并不复杂的持久化
3.4.1 单数据源
3.4.2 多数据源
3.4.3 JOOQ
3.4.4 事务处理
3.4.5 整合Redis
3.4.6 整合队列
3.4.7 操作MongoDB
3.5 Web开发
3.6 懒人的接口文档管理
3.7 优化的调度
3.8 健康是永恒的主题
3.9 强强联合之整合Dubbo
3.10 小结
第4章 微服务之Docker
4.1 Docker原理
4.2 更轻量级的虚拟化
4.3 三个概念理解Docker
4.3.1 镜像(Image)
4.3.2 容器(Container)
4.3.3 仓库(Repository)
4.4 Dockerfile定制一切
4.4.1 Dockerfile语法
4.4.2 Dockerfile命令
4.4.3 Dockerfile构建过程
4.4.4 构建Java环境
4.4.5 Dockerfile小结
4.5 Docker网络
4.5.1 网络模式
4.5.2 link
4.5.3 跨主机访问
4.6 Docker数据卷
4.6.1 数据卷
4.6.2 数据卷容器
4.7 Spring Boot与Docker
4.8 搭建自己的镜像仓库
4.8.1 安装和启动
4.8.2 使用
4.9 Kubernetes
4.10 私有云整体架构
4.11 小结
第5章 微服务之Spring Cloud
5.1 注册中心
5.1.1 常用的注册中心
5.1.2 Eureka介绍
5.1.3 服务发现
5.1.4 简单注册
5.2 负载均衡
5.2.1 Spring Cloud的负载实现
5.2.2 Ribbon
5.2.3 Feign
5.2.4 加入core
5.3 微服务容错(Hystrix)
5.3.1 雪崩的形成
5.3.2 应对方案
5.3.3 降级和熔断
5.3.4 Hystrix
5.3.5 集中监控
5.4 分布式配置中心
5.5 API网关
5.5.1 为什么需要网关
5.5.2 Zuul
5.6 消息总线(Spring Cloud Bus)
5.7 小结
第6章 微服务之Spring Cloud其他框架
6.1 Spring Cloud Consul
6.2 Spring Cloud ZooKeeper
6.3 Spring Cloud archaius
6.4 Spring Cloud Task
6.5 Spring Cloud Security
6.5.1 HTTP Basic Authentication
6.5.2 JWT
6.5.3 OAuth 2
6.5.4 Spring Cloud Security
6.6 Spring Cloud Sleuth
6.6.1 服务端
6.6.2 客户端
6.7 Spring Cloud Stream
6.8 Spring Cloud Data Flow
6.9 小结
第7章 微服务之自动化测试与质量管理
7.1 微服务测试
7.2 单元测试
7.2.1 单元测试及覆盖率评估
7.2.2 JUnit
7.2.3 Spring Boot单元测试
7.2.4 Mockito
7.3 API测试
7.3.1 Jmeter
7.3.2 压力测试
7.4 A/B测试
7.5 冒烟和回归测试
7.6 静态代码分析
7.6.1 Checkstyle
7.6.2 FindBugs
7.6.3 PMD
7.7 SonarQube质量监控
7.7.1 为什么使用
7.7.2 安装和使用
7.7.3 安装插件
7.7.4 运行流程
7.8 小结
第8章 微服务之JHipster
8.1 JHipster技术列表
8.1.1 客户端选项
8.1.2 服务端选项
8.1.3 部署选项
8.2 Angular简介
8.3 快速开始JHipster
8.3.1 安装
8.3.2 使用
8.3.3 构建单体应用
8.3.4 Entity sub-generator
8.3.5 开发和运行
8.3.6 插件安装
8.4 目录结构
8.5 构建微服务应用
8.5.1 注册中心
8.5.2 创建微服务网关
8.5.3 Traefik
8.5.4 JHipster UAA
8.5.5 构建微服务应用
8.6 基础配置
8.6.1 JHipster属性配置
8.6.2 作为Maven项目
8.6.3 数据库
8.6.4 DTO
8.6.5 分页
8.6.6 文档
8.7 小结
第9章 微服务之自动化部署
9.1 私有仓库搭建
9.1.1 Nexus介绍
9.1.2 安装与配置
9.1.3 在项目中使用
9.2 Ansible
9.3 持续集成
9.3.1 持续集成流程
9.3.2 Jenkins介绍与安装
9.3.3 Maven介绍
9.3.4 Jenkins系统设置
9.3.5 集成Sonar
9.3.6 构建工程
9.3.7 配置测试
9.4 灰度发布
9.5 小结
第10章 微服务之日志收集与监控
10.1 ELK搜集与分析
10.1.1 工作流程
10.1.2 日志格式
10.1.3 平台搭建
10.2 系统监控
10.2.1 监控策略和监控对象
10.2.2 进程监控
10.2.3 数据波动监控
10.2.4 常用监控命令
10.3 运维监控
10.3.1 Zabbix
10.3.2 Open-Falcon
10.4 APM监控
10.4.1 Pinpoint
10.4.2 SkyWalking
10.4.3 Zipkin
10.4.4 CAT
10.5 Pinpoint的安装与使用
10.5.1 Pinpoint的安装
10.5.2 Pinpoint的使用
10.5.3 Pinpoint实现邮件告警
10.6 小结
第11章 完整示例
11.1 安装Lombok
11.2 PiggyMetrics
11.3 整体架构
11.3.1 配置Spring Cloud Config
11.3.2 授权服务
11.3.3 API网关
11.3.4 服务发现
11.3.5 负载均衡器、断路器和HTTP客户端
11.3.6 监控仪表盘
11.3.7 日志分析
11.4 安装和运行
11.4.1 配置Maven并导入工程
11.4.2 安装
11.4.3 使用
11.4.4 如何变成自己的项目
11.5 小结
第12章 微服务核心功能推荐
12.1 工作流引擎
12.1.1 Activiti
12.1.2 UFLO
12.2 规则引擎
12.2.1 Drools
12.2.2 URule
12.3 调度系统
12.4 消息推送
12.5 网关中间件
12.5.1 Orange
12.5.2 Kong
12.5.3 Zuul
12.6 分库分表中间件
12.6.1 Sharding-JDBC
12.6.2 MyCat
12.7 报表引擎
12.8 数据处理
12.8.1 Spring Batch
12.8.2 Kettle
12.9 并发编程
12.10 分布式配置
12.10.1 Disconf
12.10.2 Apollo
12.11 CAS
12.12 WebFlux
12.13 小结