01-微服务的概念
一、微服务的概念
1.1、单体架构
- 概念
- 单体架构是将业务的所有功能集合在一个项目中开发,打包成一个包部署
- 单体架构的优缺点
- 优点
- 架构简单
- 部署成本低
- 缺点
- 耦合度高
- 无法针对不同模块进行针对性能优化,如果需要提高性能只能整体一起提高
- 单点容错率低,并发能力差, 全部功能集成在一个工程中,对于大型项目不易开发、扩展及维护。
- 优点
1.2、分布式架构
分布式的概念
- 多台机器分别做不同的事情, 最终整合成为一个完整的系统
集群的概念
- 多态服务器做的事情是一样的
- 概念
- 分布式架构是根据业务功能对系统进行拆分,每个业务功能模块作为独立项目开发,称为一个服务
- 分布式架构的优缺点
- 优点
- 降低服务耦合
- 有利于服务升级和拓展
- 缺点
- 服务调用关系错综复杂
- 优点
- 分布式架构虽然降低了服务耦合, 但是服务拆分的时候也有很多问题需要思考
- 服务拆分的粒度如何界定?
- 服务之间如何调用?
- 服务的调用关系如何管理?
1.3、微服务
- 概念
- 微服务是一种经过良好架构设计的分布式架构方案
- 微服务的架构特征
- 单一职责
- 微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责
- 自治
- 团队独立、技术独立、数据独立,独立部署和交付
- 面向服务
- 服务提供统一标准的接口,与语言和技术无关
- 隔离性强
- 服务调用做好隔离、容错、降级,避免出现级联问题
- 单一职责
- 微服务的上述特征其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性;做到高内聚,低耦合
- 所以,可以认为微服务是一种经过良好架构设计的分布式架构方案
- 既然是一种方案,那么怎么落地,选用什么技术栈?在Java中最常用的就是Spring Cloud提供的方案
1.4、Spring Cloud
- Spring Cloud是目前国内使用最广泛的微服务架构
- 官网地址
- Spring Cloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,提供了良好的开箱即用体验
- 常见的组件包括
Spring Cloud底层是依赖于Spring Boot的,并且有版本的兼容关系,如下所示
1.5、总结
软件的架构有哪些?每种软件架构的特点是怎样子?
- 单体架构
- 特点
- 所有的代码都在一个项目中
- 优点
- 结构简单、部署方便
- 缺点
- 耦合度高,没法对单个模块进行性能调优
- 特点
- 分布式架构
- 特点
- 根据业务进行拆分 优点:耦合度第,方便去升级维护 思考问题:如何远程调用、拆分力度大小?服务是否健康
- 特点
- 微服务架构
- 特点
- 业务的符合单一职责、 自治、 面向外界暴露服务接口、隔离性强
- 特点
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?