1、什么是微服务?
微服务是系统架构的一种设计风格,将一个原本独立的服务拆分成多个小型服务,
每个服务独立运行在在各自的进程中,服务之间通过 HTTP RESTful API 进行通信.每个小型的服务都围绕着系统中的某个耦合度较高的业务进行构建.
2、为什么使用微服务?
因为传统的 Servlet + JSP,还是 SSM,还是现在的 SpringBoot,它们都是单体应用,弊端如下:
1、部署成本高(无论是修改1行代码,还是10行代码,都要全量替换)
2、改动影响大,风险高(不论代码改动多小,成本都相同)
3、因为成本高,风险高,所以导致部署频率低(无法快速交付客户需求)
3、微服务架构特征
- 1、单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责
- 2、自治:团队独立、技术独立、数据独立,独立部署和交付
- 3、面向服务:服务提供统一标准的接口,与语言和技术无关
- 4、隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
4、SpringCloud微服务框架
SpringCloud是目前国内使用最广泛的微服务框架。
官网地址:https://spring.io/projects/spring-cloud。
SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验。
另外,SpringCloud底层是依赖于SpringBoot的,并且有版本的兼容关系,如下:
5、总结
- 单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统
- 分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝
- 微服务:一种良好的分布式架构方案
①优点:拆分粒度更小、服务更独立、耦合度更低
②缺点:架构非常复杂,运维、监控、部署难度提高- SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件