初识微服务

文章目录

  • 1.架构分类
    • 1.单体架构
    • 2.分布式架构
  • 2.微服务
    • 1.微服务结构
      • 微服务技术对比
    • 2.SpringCloud

1.架构分类



1.单体架构


用大白话来说:就是一个项目里包含了这个项目的所有代码
而专业性地来说:就是将业务的所有功能都集中在一个项目中进行开发,并打包部署。
而单体架构只需要将开发好地项目打包成war包,然后发布到Tomcat服务器中运行即可。

在单体架构项目中,通过Package来区分多个模块:
初识微服务_第1张图片

优点:

  1. 架构简单,易于开发
  2. 易于部署,生产成本低

缺点:

  1. 耦合度高
    • 可靠性差:一个问题可能会引起整个项目地崩溃。
    • 复杂性差:项目难以修改和重构。
    • 伸缩性差:整体只能横向扩展,无法分模块垂直扩展。
    • 维护成本高:一个功能出现问题,可能会引起另一个功能不可用。
  2. 吞吐量小:tomcat处理的请求的并发量受限

可见,单体架构虽然架构简单,易于部署,但是存在的问题还是很多的。也就是为了解决单体架构存在的问题,才会有分布式架构的横空出世!!!


2.分布式架构

根据业务功能对系统进行拆分,每个业务模块都作为一个独立的工程,称为一个服务。

优点:

  • 与单体架相比,降低了耦合度: 一个功能出现问题,不会影响到其他功能的使用
  • 服务升级扩展强:只需要添加新的模块到项目中即可
  • 吞吐量大:每个服务都有单独的Tomcat和数据库

缺点:

  • 技术要求高
  • 架构更加复杂
  • 生产成本高



2.微服务

微服务是一种经过良好架构设计的分布式架构方案,提倡将单一的应用程序拆分成各个独立的小的服务,服务之间相互协调,相互配合,互不影响

微服务架构的特征:

  1. 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复开发
  2. 面向服务:微服务对外暴露接口
  3. 隔离性强:服务调用做好隔离、容错、降级、避免出现级联问题

优点:

  • 拆分粒度更小,服务更独立,耦合度低

缺点:

  • 架构非常复杂,运维、监控、部署难度提高

1.微服务结构

在国内最知名的就是Springcloud和阿里巴巴的Dubbo,以及后来的SpringCloudAlibaba


微服务技术对比

初识微服务_第2张图片


2.SpringCloud

  1. SpringCloud是目前国内使用最广泛的微服务框架。官方地址:SpringCloud官网

  2. SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验

SpringCloud和SpringBoot的版本兼容(更新于2022):
初识微服务_第3张图片

你可能感兴趣的:(Spring,Cloud,微服务,分布式)