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、总结

软件的架构有哪些?每种软件架构的特点是怎样子?

  • 单体架构
    • 特点
      • 所有的代码都在一个项目中
    • 优点
      • 结构简单、部署方便
    • 缺点
      • 耦合度高,没法对单个模块进行性能调优
  • 分布式架构
    • 特点
      • 根据业务进行拆分 优点:耦合度第,方便去升级维护 思考问题:如何远程调用、拆分力度大小?服务是否健康
  • 微服务架构
    • 特点
      • 业务的符合单一职责、 自治、 面向外界暴露服务接口、隔离性强
posted @   OnlyOnYourself-Lzw  阅读(64)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示