第一节:初识微服务
服务架构设计发展概述
微服务简介
服务的独立性与自主性
服务的弹性与容错性
自动化环境
示例项目 eMall 介绍
第二节:Java 与微服务
Java 微服务常用框架:Spring Boot
Java 微服务常用框架:Dropwizard
Java 微服务常用框架:J2EE (Java Platform,Enterprise Edition)
版本依赖关系工具:Apache Maven
版本依赖关系工具:Gradle
版本依赖关系工具:其它工具
如何设计服务:领域驱动设计原则
如何设计服务:将领域元素转换为微服务
如何设计服务:应用与服务架构
如何设计服务:创建 RESTful API
【课后操作练习题】Git、Maven 工具安装
【课后操作练习题】使用 Dropwizard、Spring Boot 创建 eMall 项目微服务
第三节:微服务间关系
服务注册与发现
服务调用
服务间通信
【课后操作练习题】使用 Zookeeper 作为服务发现
【课后操作练习题】使用 Consol 作为服务发现
第四节:数据模型设计与处理
微服务数据定义:从领域设计到实体
微服务数据定义: 数据的持久性
微服务数据定义: 跨服务数据共享
微服务数据定义:CQRS
消息系统与协议:消息系统
消息系统与协议:常用协议
【课后操作练习题】使用 Kafka 作为消息系统
【课后思考题】有哪些常用开源消息系统,适用场景有哪些?
第五节:微服务安全加固
网络分隔
数据私密性保证
身份识别与信任
【课后操作练习题】HMAC、API 密钥识别方式的实现
【课后思考题】深度防御该如何做?
第六节:微服务测试
测试分类
不同环境下的测试:单服务测试
不同环境下的测试: 预生产环境测试
不同环境下的测试: 生产环境测试
【课后操作练习题】使用 Mock 工具进行测试
【课后思考题】测试与研发过程的衔接时机问题
第七节:微服务部署
自动化工具
应用打包:JAR、WAR、EAR?
应用打包:容器化
应用打包:应用打包的最佳实践
应用配置
提升运维友好度
度量指标与健康检测
日志管理
【课后操作练习题】将应用配置与应用程序分隔开的 WAR 包
【课后思考题】微服务依赖部署关系该如何解决?
【课后思考题】灰度发布该如何来做?
第八节 Part I:微服务与虚拟化、容器化
Linux 虚拟化简介
常见虚拟化方案介绍
虚拟化与 Java 微服务实践
Linux 容器简介
Docker 介绍
Docker 与 Java 微服务实践
【课后操作练习题】构建 eMall 项目的 Docker 部署镜像
第八节 Part II:微服务应对高并发实践
拥抱故障
容量规划
功能降级
高扩展性
自动伸缩
课后习题
【思考题】什么样的状况下不应该使用微服务?