GitHub标星90K! 面试必备Spring微服务架构设计

第1章微服务揭秘

1.1 微服务的演进

  • 1.1.1 微服务演进的催化剂——业务需求
  • 1.1.2 微服务演进的催化剂——技术演进
  • 1.1.3 架构演进势在必行

     

1.2 什么是微服务

1.3 微服务蜂巢

1.4 微服务架构的设计原则

  • 1.4.1 每个服务承担单一责任
  • 1.4.2 微服务是自治的

1.5 微服务的特性

  • 1.5.1 服务是一等公民
  • 1.5.2 微服务是轻量级的
  • 1.5.3 微服务的混合架构
  • 1.5.4 微服务环境中的自动化
  • 1.5.5 微服务的生态支持系统
  • 1.5.6 微服务是动态分布式的
  • 1.5.7 抗脆弱、快速失败和自我愈合

1.6 微服务的实例

  • 1.6.1 一个酒店门户网站的例子
  • 1.6.2 一个旅行社门户网站的例子

1.7 微服务架构的优势

  • 1.7.1 支持混合架构
  • 1.7.2 为试验和创新赋能
  • 1.7.3 弹性伸缩和选择性扩容
  • 1.7.4 服务可替换
  • 1.7.5 为构建有机系统赋能
  • 1.7.6 有助于管理技术债
  • 1.7.7 允许不同版本并存
  • 1.7.8 支持构建自组织系统
  • 1.7.9 支持事件驱动架构
  • 1.7.10 为evOps赋能

     

1.8 小结

第2章 相关架构风格和用例

2.1 SOA

  • 2.1.1 面向服务的集成
  • 2.1.2 遗留系统现代化
  • 2.1.3 面向服务的应用
  • 2.1.4 用S0A迁移单体应用

     

2.2 十二要素应用

  • 2.2.1 单一代码库
  • 2.2.2 依赖捆绑
  • 2.2.3 配置外部化
  • 2.2.4 支撑服务可寻址
  • 2.2.5 构建、发布和运行时的隔离
  • 2.2.6 无状态、不共享进程
  • 2.2.7 通过端口绑定呆露服务
  • 2.2.8 以水平扩展实现高并发
  • 2.2.9 以最小的开销实现可处置性
  • 2.2.10 开发环境和生产环境的对等性
  • 2.2.11 日志信息外部化
  • 2.2.12 打包后台管理进程

2.3 无服务器计算

2.4 Lanbda架构

2.5 DevCps、云计算和容器

  • 2.5 1 DevCps是实现微服务架构的实践和流程
  • 2.5.2 以云计算和容器作为微服务的自助式基础设施

2.6 响应式微服务一个基于响应式微服务的订单管理系统

2.7 微服务用例

2.8 微服务先行者的共同点单体迁移是常见用例

2.9 微服务框架

2.10 小结

第 3 章 用Spr ing Boot构建微服务

3.1 搭建开发环境

3.2 用Spr ing Boot构建EESTful微服务

3.3 Spring Boot入门

3.4 开发Spring Boot微服务

3.5 开发第一个Spring Boot微服务测试Spring Boot微服务

3.6 启用HATEOAS的Spring Boot微服务

3.7 响应式Spring Boot微服务

  • 3.7.1 使用Spring WehFlux实现响应式微服务
  • 3.7.2 用Spring Boot和RabbitMQ实现响应式微服务

3.8 实现微服务安全

  • 3.8.1 用基本安全策略保护微服务
  • 3.8.2 用OAuth2保护微服务

3.9 为微服务交互启用跨域访问

3.10 使用Spring Boot Ac tusa tor实现微服务ins trumen tation

  • 3.10.1 利用JCon sole监控应用
  • 3.10.2 利用ssh监控应用
  • 3.10.3 添加自定义健康检查模块
  • 3.10.4 自定义指标

     

3.11 微服务文档化

3.12 综合实例:开发客户注册微服务

3.13 小结

第4章 应用微服务概念

4.1 微服务设计指南

  • 4.1.1 确定微服务的边界
  • 4.1.2 设计微服务通信方式
  • 4.1.3 微服务编排
  • 4.1.4 每个微服务包含多少个端口——一个还是多个
  • 4.1.5 每个虚拟机运行多少个微服务——一个还是多个
  • 4.1.6 规则引擎——共享还是嵌入
  • 4.1.7 BPM和工作流的作用
  • 4.1.8 微服务可以共享数据库吗
  • 4.1.9 微服务可以无头吗
  • 4.1.10 确定事务边界
  • 4.1.11 服务端口设计的考量点
  • 4.1.12 处理共享类库
  • 4.1.13 微服务中的UI
  • 4.1.14 微服务中使用API网关
  • 4.1.15 在微服务架构中使用ESB和l iPaas
  • 4.1.16 服务版本化的考虑
  • 4.1.17 跨域设计
  • 4.1.18 处理共享的引用数据
  • 4.1.19 微服务和批量操作

     

4.2 小结

第5章 微服务能力模型

5.1 微服务能力模型简介

5.2 核心能力

  • 5.2.1 服务监听器和类库
  • 5.2.2 存储能力
  • 5.2.3 服务实现
  • 5.2.4 服务端口

5.3 基础设施能力

  • 5.3.1 云计算
  • 5.3.2 容器运行时
  • 5.3.3 容器编排

5.4 支撑能力

  • 5.4.1 服务网关
  • 5.4.2 软件定义的负载均衡
  • 5.4.3 集中式日志管理
  • 5.4.4 服务发现
  • 5.4.5 安全服务
  • 5.4 6 服务配置
  • 5.4.7 运维监控
  • 5.4.8 依赖管理
  • 5.4.9 数据湖
  • 5.4.10 可靠的消息机制

5.5 流程和治理能力

  • 5.5.1 DevOps5.52自动化工具
  • 5.5.3 容器注册表
  • 5.5.4 微服务文档化
  • 5.5.5 参考架构和类库

     

5.6 微服务成熟度模型

  • 5.6.1 第0级——传统
  • 5.6.2 第1级——初级
  • 5.6.3 第2级——中级
  • 5.6.4 第3级——高级

5.7 微服务采用的入口

5.8 小结

第6章 微服务演进案例研究

6.1 理解PSS应用

  • 6.1.1 业务流程视图
  • 6.1.2 功能视图
  • 6.1.3 架构视图
  • 6.1.4 设计视图
  • 6.1.5 实现视图
  • 6.1.6 部署视图

     

6.2 单体之死

  • 6.2.1 痛点
  • 6.2.2 应急修复
  • 6.2.3 复盘

6.3 诉诸微服务——有计划地迁移

  • 6.3.1 业务用例
  • 6.3.2 迁移方法
  • 6.3.3 确定微服务边界
  • 6.3.4 分析服务依赖关系
  • 6.3.5 微服务迁移的优先级
  • 6.3.6 迁移过程中的数据同步
  • 6.3.7 管理引用数据
  • 6.3.8 UI和Wcb应用
  • 6.3.9 测试策略
  • 6.3.10 构建生态系统能力
  • 6.3.11 只迁移必要的模块
  • 6.3.12 微服务的内部层次结构
  • 6.3.13 微服务编排
  • 6.3.14 与其他系统的集成
  • 6.3.15 迁移共享类库
  • 6.3.16 处理异常

6.4 目标实现

  • 6.4.1 项目实现
  • 6.4.2 项目运行和测试

6.5 后续工作

6.6 小结

第7章 用Spring Cloud组件扩展微服务

7.1 什么是Spr ing Cloud

7.2 Spring Cloud的版本

7.3 搭建BrownField航空公司PSS系统的项目环境

7.4 Spring Cloud Config

  • 7.4.1 用配置服务器构建微服务
  • 7.4.2 搭建配置服务器
  • 7.4.3 理解配置服务器URL
  • 7.4.4 处理配置变更
  • 7.4.5 用Spring Cloud总线推送配置变更
  • 7.4.6 搭建配置服务器的高可用集群
  • 7.4.7 监控配置服务器的健康状态
  • 7.4.8 用配置服务器管理配置文件
  • 7.4.9 完成修改以使用配置服务器

7.5 将Eurcka用于服务注册和发现

  • 7.5.1 理解动态服务注册和发现
  • 7.5.2 理解Eureka
  • 7.5.3 搭建Eureka服务器
  • 7.5.4 Eureka的高可用性

7.6 用Zul代理作为API网关

  • 7.6.1 搭建Zuul
  • 7.6.2 Zunul的高可用性

7.7 响应式微服务流

7.8 用Spring Cloud Security 保护微服务

7.9 总结BrownField航空公司的PSS应用架构

7.10 小结

第8章 微服务的日志管理和监控

8.1 日志管理的挑战

8.2 集中式日志管理方案

8.3 日志管理方案的选取

  • 8.3.1 云服务
  • 8.3.2 现成的方案
  • 8.3.3 集成一流的组件
  • 8.3.4 自定义日志管理方案的实现
  • 8.3.5 用Spring Cloud Sleuth实现分布式追踪

8.4 监控微服务

  • 8.4.1 微服务监控的挑战
  • 8.4.2 监控工具
  • 8.4.3 监控微服务依赖
  • 8.4.4 用Spring Cloud Hystrix 实现微服务容错
  • 8.4.5 用Turbine聚合ystrix流

8.5 使用数据库做数据分析

8.6 小结

第9章 用Docker容器化微服务

9.1 BrownField公司PSS微服务的不足之处

9.2 什么是容器

9.3 虚拟机和容器的区别

9.4 容器的优势

9.5 微服务和容器

9.6 Docker简介

Docker的关键组件

9.7 将微服务部署到Docker中

9.8 在Docker上运行Rabbi tMQ

9.9 使用Docker注期表

  • 9.9.1 设置Docker lfub
  • 9.9.2 将微服务发布到Docker Hub

9.10 微服务上云

在AWS EC2上安装Docker

9.11 在EC2上运行BrownFiled公司的微服务

9.12 容器化的未来

9.13 小结

第10章 用Mesos和lMarathon扩展容器化的微服务

10.1 微服务扩容

  • 10.1.1 理解自动扩容
  • 10.1.2 缺失的部分

     

10.2 容器编排

  • 10.2.1 为什么容器编排很重要
  • 10.2.2 容器编排是什么
  • 10.2.3 容器编排和微服务的关系
  • 10.2.4 容器编排和虚拟化的关系
  • 10.2.5 容器编排方案

10.3 用Mesos和lMarathon实现容器编排

深入Mesos

10.4 用IxOS实现Mesos和Mara thon

10.5 为BrownField公司的微服务实现Mesos和Marathon

  • 10.5.1 安装Mesos. Marathon及相关组件
  • 10.5.2 运行Mesos和lMarathon

10.6 准备部署BrownField公司的PSS微服务

部署BrownField公司的PSS服务

10.7 小结

第 11 章 微服务开发生命周期

11.1 微服务开发的实践要点

  • 11.1.1 理解业务动机和价值
  • 11.1.2 从项目开发到产品开发的观念转变
  • 11.1.3 选择正确的开发理念
  • 11.1.4 使用最小可行产品的概念
  • 11.1.5 克服遗留热点
  • 11.1.6 建立自组织的团队
  • 11.1.7 构建自服务云
  • 11.1.8 构建一套微服务生态系统
  • 11.1.9 以Dev0ps实践贯穿微服务开发的生命周期
  • 11.1.10 价值驱动计划
  • 11.1.11 持续监控和反馈

     

11.2 自动化开发周期

  • 11.2.1 开发
  • 11.2.2 集成
  • 11.2.3 测试
  • 11.2.4 部署
  • 11.2.5 监控和反馈
  • 11.2.6 配置管理
  • 11.2.7 微服务开发治理、参考架构和类库

11.3 小结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值