2014年,martin fowler在他的博客发表了一篇关于微服务的博文,生动形象的介绍了整个微服务的一些设计思想以及一些理念,微服务从这时候开始才被人慢慢的所熟知。
微服务是一种架构风格:
- 一个应用应该是一个小型服务
- 可以通过HTTP协议进行互通
要了解微服务,首先要了解单体应用
单体应用(ALL IN ONE):
- 所有的东西都写在一个应用里面
优点:
- 开发简单,把所有功能集成到一个应用里面
- 测试便捷简单,一个应用没有与其他应用耦合,不需要互相调试
- 易于部署,把应用打成war包部署在服务器里面
- 易于扩展,但应用的负载能力不行的时候,可以把相同的应用负责到多个服务器运行,实现负载均衡
缺点:
- 牵一发动全身,一个小小的修改可能会导致整个应用重新部署
- 无法要求日益增长的软件需求
微服务的架构风格:
- 每一个功能元素都是一个可独立替换和可独立升级的软件单元
按照SpringBoot的核心思想,那么SpringBoot应用最后因该是一个大型的分布式应用
Spring官网为我们提供了解决方案