微服务架构诞生的背景:
对于比较小的单体项目,通过使用编辑器,创建maven创建工程,然后基于spring boot,spring mvc,mybatis等框架进行整合,在写一些controller,service,mapper层以及一些配置文件进行业务的调用,然后打包成jar包/war包,最后将包放到tomcat等,最后发布到Linux服务器上跑业务,然后呢,通过服务提供的访问端口发送http请求,通过springweb组件,进行代码层层调用,像这种项目访问量不大,体积较小,一个小团队即可完成.但是一个庞大的服务,需要庞大的代码组成,维护起来非常困难,如何解决这个问题,就需要抽丝剥茧,将业务按要求分离出来单独开发,这个问题就迎刃而解了.
解决臃肿的大的服务,拆成若干个小系统,各司其职,假如某个系统出问题,保证整个系统依然正常运行,比如一个城市有多座火车站,一个火车站出问题,不影响其他.
SpringCloud Alibaba是SpringCloud中的一个子项目,由阿里巴巴团队开发维护,致力于一站式解决微服务开发的解决方案,此项目包含开发分布式微服务的必要组件,方便程序员通过SpringCloud中的模型轻松式样这些组件来开发分布式微服务应用
SpringCloud Alibaba默认提供了一下功能组件
什么是限流降级:例如,电商在搞秒杀活动时,会将秒杀服务的等级提高,限制其他服务访问等级,使秒杀互动正常运行.
有点断臂求生的意思.
接下来我们通过创建一个Maven工程一步步的实现分布式微服务的业务逻辑.我们会涉及到的知识内容有,Maven,SpringBoot,Nacos,SpringMVC等.
微服务一般创建聚合工程结构,便于资源的共享以及简化开发
创建一个空文件目录并配置maven环境
Maven版本使用的3.8.4,Maven仓库最好创建到其他磁盘,否则默认在系统盘下,随着依赖越来越多,C盘承受不住~.
设置版本为8
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-dependenciesartifactId>
<version>2.3.2.RELEASEversion>
<type>pomtype>
<scope>importscope>
dependency>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-dependenciesartifactId>
<version>Hoxton.SR9version>
<type>pomtype>
<scope>importscope>
dependency>
<dependency>
<groupId>com.alibaba.cloudgroupId>
<artifactId>spring-cloud-alibaba-dependenciesartifactId>
<version>2.2.6.RELEASEversion>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>
<dependencies>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
<scope>providedscope>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
<exclusions>
<exclusion>
<groupId>org.junit.vintagegroupId>
<artifactId>junit-vintage-engineartifactId>
exclusion>
exclusions>
dependency>
dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<version>3.8.1version>
<configuration>
<source>8source>
<target>8target>
configuration>
plugin>
plugins>
build>
我们会基于此架构,完成分布式微服务的业务流程.
在下一篇博客中我们将介绍注册中心Nacos的相关内容.