单体应用架构与微服务架构

什么是微服务

  • 微服务是一种架构模式或者说是一种架构风格,它要求我们在开发应用的时候,提倡将一个单一的应用程序划分为一组微小的服务
  • 各个服务之间相互协调、相互配合,服务之间采用轻量级的通信机制互相沟通,通常是基于http的RESTful API
  • 每个服务都围绕着具体的业务进行构建,并且能够被独立的构建在生成环境中

要说到微服务,还得先说说过去我们的单体应用架构

 

单体应用架构

什么是单体应用架构

  所谓单体应用架构(All In One)是指,我们把所有服务或者功能都封装在一个应用中。
  无论是ERP的其他什么系统,你都把数据库访问,Web访问等等各个功能都放到一个war包内!我们之前开发项目都是这样干的:比如SSM、JavaWeb。

单体应用架构的优点

  单体应用架构易于我们的开发和测试,方便部署!

单体应用架构的缺点

  单体应用架构的缺点在于,哪怕我需要修改一个非常小的地方,我都需要停掉整个服务,重新打包,再进行部署。特别是对于一个大型的应用,我们不可能把所有的服务或者功能都放在一个应用里面。

拓展架构风格

  • MVC三层架构
  • MVVM前端架构
  • 微服务架构

 

微服务架构

  所谓的微服务架构,就是打破之前的All In One的架构方式,把每一个功能元素独立出来。它要求我们在开发应用的时候,提倡将一个单一的应用程序划分为一组微小的服务。各个服务之间相互协调、相互配合,服务之间采用轻量级的通信机制互相沟通,通常是基于http的RESTful API。每个服务都围绕着具体的业务进行构建,并且能够被独立的构建在生成环境中。

微服务的构建

如何构建一个微服务呢?
  一个大型微服务架构,就像通过一个复杂的神经网络,每一个神经元就是一个功能元素,他们各自有各自的功能,并且通过http相互请求调用。比如一个电商系统,查缓存、连数据库、浏览页面、支付、结账等服务都是一个个独立的功能服务,都被微服务化了,它们作为一个个微服务共同构建了一个庞大的系统。如果需要修改其中一个功能,只需要更新升级其中一个功能服务单元即可。

  但是这种庞大的系统架构给部署和运维带来了很大的压力,于是,Spring官方为我们带来了构建大型分布式微服务的全套、全程产品:

  • 构建一个个功能独立的微服务应用单元,我们可以使用SpringBoot,它可以帮我们快速构建一个应用。
  • 大型分布式微服务网络的调用,这部分由SpringCloud来完成,实现分布式。
  • 在分布式中间进行的流数据计算、批处理,我们可以使用SpringCloudDataFlow来实现。

  所以说,Spring官方为我们带来了构建大型分布式微服务的全套、全程产品。

SpringBoot和SpringCoud的区别

在这里,我们说说SpringBoot和SpringCoud的区别。

SpringBoot

SpringBoot专注于快速开发单个个体微服务,被称为快速开发的脚手架。
SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖关系

SpringCloud

SpringCloud是关注全局的单个个体微服务(SpringBoot)之间协调治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供:服务注册与发现、负载均衡、服务熔断、服务降级、服务限流等等集成服务。

 

  • 关于SpringBoot的相关内容具体见我的博客:SpringBoot快速开发微服务的脚手架
  • 关于SpringCloud的相关内容句见我的博客:SpringCloud 连接、协调、管理微服务

你可能感兴趣的:(微服务,微服务,架构,SpringBoot,SpringCloud,HttpRESTful)