一:引言
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是 Spring Boot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架。
使用 Spring Boot 可以非常方便、快速搭建项目,使我们不用关心框架之间的兼容性,适用版本等各种问题,我们想使用任何东西,仅仅添加一个配置就可以,所以使用 Spring Boot 非常适合构建微服务。
优点:
- 1、首先 SpringBoot可以快速一键快速搭建Spring框架,简化初始配置 ,可与主流框架集成 ;
- 2、内置Servlet容器,无需在打War包 ;
- 3、使用了Starter(启动器)管理依赖并版本控制;
- 4、大量的自动配置,简化开发,方便集成第三方;
- 5、提供准生产环境运行时的监控,如指标,健康,外部配置等;
- 6、无需XML配置,减少冗余代码 ,开箱即用。
二、微服务
(1)概念: 一个项目可以由多个小型服务组成
(2)特性: 每个微服务都可以运行在自己的进程里;一系列独立运行的微服务共同构建起了整个系统;每个服务为独立的业务开发,一个微服务一般完成某个特定的功能,比如订单管理,用户管理等;微服务之间通过一些轻量级的通信机制进行通信。
**(3)微服务的优点:**往往比传统的应用程序更有效地利用计算资源。这是因为它们通过扩展组件来处理功能瓶颈问题。这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个完整的应用程序的全新迭代。最终的结果是有更多的资源可以提供给其它任务。
(4)微服务的缺点: 运维要求高,分布式的复杂性增加,接口调整成本高,重复劳动
(5)微服务与单体架构的区别:
- 单体架构所有的模块全都耦合在一块,代码量大,维护困难,微服务每个模块就相当于一个单独的项目,代码量明显减少,遇到问题也相对来说比较好解决。
- 单体架构所有的模块都共用一个数据库,存储方式比较单一,微服务每个模块都可以使用不同的存储方式(比如有的用redis,有的用mysql等),数据库也是单个模块对应自己的数据库。
- 单体架构所有的模块开发所使用的技术一样,微服务每个模块都可以使用不同的开发技术,开发模式更灵活
单体架构示意图:
微服务架构示意图: