SpringCloud与微服务

/ SpringCloud / 7 条评论 / 677人围观

在传统的软件架构中,通常采用的是单体应用来构建一个系统,一个单体应用糅合了各种业务模块。起初在业务规模不是很大的情况下,对于单体应用的开发维护也相对容易。但随着企业的发展,业务规模与日递增,单体应用变得愈发臃肿。由于单体应用将各种业务模块聚合在一起,并且部署在一个进程内,所以通常对其中一个业务模块的修改也必须将整个应用重新打包上线(一个war包打天下)。为了解决单体应用变得庞大脯肿之后产生的难以维护的问题,微服务架构便出现在了大家的视线里。

什么是微服务

所谓微服务,顾名思义就是微小的可单独运行的服务程序,下面这张图最能解释了。 请输入图片描述

在微服务的架构下,单体应用的各个业务模块被拆分为一个个单独的服务并部署在单独的进程里,每个服务都可以单独的部署和升级。这种去中心化的模式使得后期维护和开发变得更加灵活和方便。由于各个服务单独部署,所以可以使用不同的语句来开发各个业务服务模块。

什么是SpringCloud

SpringCloud是一个基于SpringBoot实现的微服务架构开发工具。SpringCloud的诞生并不是为了解决微服务中的某一个问题,而是提供了一套解决微服务架构实施的综合性解决方案。

SpringCloud是一个由各个独立项目组成的综合项目,每个独立项目有着不同的发布节奏,为了管理每个版本的子项目清单,避免SpringCloud的版本号与其子项目的版本号相混淆,没有采用版本号的方式,而是通过命名的方式。这些版本的名字采用了伦敦地铁站的名字,根据字母表的顺序来对应版本时间顺序。比如”Angel”是SpringCloud的第一个发行版名称, “Brixton”是SpringCloud的第二个发行版名称。当一个版本的SpringCloud项目的发布内容积累到临界点或者一个严重bug解决可用后,就会发布一个”service releases”版本,简称SRX版本,其中X是一个递增的数字,所以Brixton.SR5就是Brixton的第5个Release版本。

SpringCloud的版本和SpringBoot的版本关系可以查看官网给的例子。

以下是Spring Cloud版本与各个独立项目版本对应关系表:

ComponentEdgware.SR3Finchley.RC1Finchley.BUILD-SNAPSHOT
spring-cloud-aws1.2.2.RELEASE2.0.0.RC12.0.0.BUILD-SNAPSHOT
spring-cloud-bus1.3.2.RELEASE2.0.0.RC12.0.0.BUILD-SNAPSHOT
spring-cloud-cli1.4.1.RELEASE2.0.0.RC12.0.0.BUILD-SNAPSHOT
spring-cloud-commons1.3.3.RELEASE2.0.0.RC12.0.0.BUILD-SNAPSHOT
spring-cloud-contract1.2.4.RELEASE2.0.0.RC12.0.0.BUILD-SNAPSHOT
spring-cloud-config1.4.3.RELEASE2.0.0.RC12.0.0.BUILD-SNAPSHOT
spring-cloud-netflix1.4.4.RELEASE2.0.0.RC12.0.0.BUILD-SNAPSHOT
spring-cloud-security1.2.2.RELEASE2.0.0.RC12.0.0.BUILD-SNAPSHOT
spring-cloud-cloudfoundry1.1.1.RELEASE2.0.0.RC12.0.0.BUILD-SNAPSHOT
spring-cloud-consul1.3.3.RELEASE2.0.0.RC12.0.0.BUILD-SNAPSHOT
spring-cloud-sleuth1.3.3.RELEASE2.0.0.RC12.0.0.BUILD-SNAPSHOT
spring-cloud-streamDitmars.SR3Elmhurst.RELEASEElmhurst.BUILD-SNAPSHOT
spring-cloud-zookeeper1.2.1.RELEASE2.0.0.RC12.0.0.BUILD-SNAPSHOT
spring-boot1.5.10.RELEASE2.0.1.RELEASE2.0.0.BUILD-SNAPSHOT
spring-cloud-task1.2.2.RELEASE2.0.0.RC12.0.0.RELEASE
spring-cloud-vault1.1.0.RELEASE2.0.0.RC12.0.0.BUILD-SNAPSHOT
spring-cloud-gateway1.0.1.RELEASE2.0.0.RC12.0.0.BUILD-SNAPSHOT
spring-cloud-openfeign2.0.0.RC12.0.0.BUILD-SNAPSHOT

Finchley使用Spring Boot 2.0.x构建,之后博文的例子将采用SpringCloud Finchley.RC1版本。

  1. 11111111111

    回复
  2. sasdasdasdasd

    回复
  3. 1231313

    回复
  4. 请输入内容

    回复
  5. 老铁666

    回复
  6. wwwww

    回复