以一个名为EagleEye的项目为主线,介绍云、微服务等概念以及Spring Boot和Spring Cloud等诸多Spring项目,并介绍如何将EagleEye项目一步一步地从单体架构重构成微服务架构,进而将这个项目拆分成众多微服务,让它们运行在各自的Docker容器中,实现持续集成/持续部署,并最终自动部署到云环境(Amazon)中。针对在重构过程中遇到的各种微服务开发会面临的典型问题(包括开发、测试和运维等问题),本书介绍了解决这些问题的核心模式,以及在实战中如何选择特定Spring Cloud子项目或其他工具解决这些问题。
一:基础知识
1:什么是微服务架构
是一种架构设计风格,主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的RESTful API进行通信协作。
被拆分的每一个小型服务都围绕系统中的一项或者一些耦合度较高的业务功能进行构建,每个服务维护着自身的数据存储,业务开发,自动化测试以及独立部署。
2:实施微服务带来的问题:
- 运维的新挑战;
- 接口的一致性;
- 分布式的复杂性;
3:微服务9大特性:
- 服务组件化;
- 按业务组织团队;
- 做“产品”的态度;
- 智能端点与哑管道;
- 去中心化治理;
- 去中心化管理数据;
- 基础设施自动化;
- 容错设计;
- 演进式设计;