本系列为自己阅读 Spring Cloud Alibaba官方文档 的记录,会包括文档中Spring Cloud Alibaba的 使用方法 和一些 自己学习过程中的理解 。
这是本系列第一篇,目的是搞清楚Spring Cloud Alibaba:
这些问题每个人在使用的不同的阶段会有不同深度的理解,我这里记录的只是我作为一个新手的理解。
个人认为,这是学习一项技术非常重要的一部分,把开篇的一些概念弄清楚之后,后面的使用过程中,才会带着自己的目的,更好的明白它为什么需要这样设计,为什么需要这些组件,才能更透彻的理解和掌握。
Spring Cloud Alibaba首先是一个 项目 ,根据文档的介绍,这个项目目的是提供 微服务开发的一站式解决方案 的。包含了 开发分布式应用和服务 时需要的组件。
微服务,大多人可能都听过,都有自己的理解,新手我的简单理解,就是
微服务带来的好处:
微服务带来的缺点:
虽然有复杂度的提升,但是从应用的可持续、可扩展角度考虑,微服务是一个好的选择。
关于分布式,我的简单理解就是:
当然,分布式架构也有类似上面提到的微服务的各种优点,毕竟微服务架构也是分布式架构的一种演进结果。
微服务和分布式架构虽然带来了很多单体应用没有好处,但也意味着有更多的要在构建时要考虑的东西,如:
Spring Cloud Alibaba声称提供了一站式解决方案,那么这个系列就来看看它是如何解决的。
这块像官方文档一样,简单的介绍Spring Cloud Alibaba包含了那些主要部分,简单有个概念和印象,后面当然会详细的介绍,再去深入理解。
WebServlet
、 WebFlux
、 OpenFeign
、 RestTemplate
、 Dubbo
访问限流和降级,可以通过 console
实时修改限流降级策略,支持监控限流降级指标 上面基本上是把官方文档翻译过来的,可以发现Spring Cloud Alibaba非常强大,还不心动的往下看~
官网提供的依赖管理:
<dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.1.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 复制代码
这是个pom项目,主要用来把Spring Cloud Alibaba开发时可能用到的依赖和版本都声明进去,查看它的 pom.xml
文件,包含了大量的依赖管理声明,如:
<!--Nacos--> <dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-client</artifactId> <version>${nacos.client.version}</version> </dependency> <dependency> <groupId>com.alibaba.nacos</groupId> <artifactId>nacos-config</artifactId> <version>${nacos.config.version}</version> </dependency> <!-- Apache RocketMQ --> <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>${rocketmq.starter.version}</version> </dependency> 复制代码
因为我们现在一般基于spring-boot构建开发,所以可以考虑创建一个用于Spring Cloud Alibaba开发的父项目叫做 dependencies
,继承自 spring-boot-starter-parent
,再加入上面的Spring Cloud Alibaba依赖管理pom
<!-- 只放了关键部分 --> <parent> <artifactId>spring-boot-starter-parent</artifactId> <groupId>org.springframework.boot</groupId> <version>2.2.1.RELEASE</version> </parent> <dependencyManagement> <!-- 上面有,不再重复粘贴 --> </dependencyManagement> 复制代码
继承 dependencies
项目后,在项目中dependency中引入对应依赖(不需要版本)即可愉快使用~、