2018 年 10 月 31 日的凌晨,这个伟大的日子里,Spring Cloud Alibaba 正式入驻了 Spring Cloud 官方孵化器,并在 Maven 中央库发布了第一个版本。
Spring Cloud for Alibaba 0.2.0 released
The Spring Cloud Alibaba project, consisting of Alibaba’s open-source components and several Alibaba Cloud products, aims to implement and expose well known Spring Framework patterns and abstractions to bring the benefits of Spring Boot and Spring Cloud to Java developers using Alibaba products.
Spring Cloud for Alibaba,它是由一些阿里巴巴的开源组件和云产品组成的。这个项目的目的是为了让大家所熟知的 Spring 框架,其优秀的设计模式和抽象理念,以给使用阿里巴巴产品的 Java 开发者带来使用 Spring Boot 和 Spring Cloud 的更多便利。
Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 Spring Cloud 应用接入阿里微服务解决方案,通过阿里中间件来迅速搭建分布式应用系统。
[备注]: 微服务开发理念,分布式开发套路
分布式开发中,都要注意以下问题:
1、服务与服务之间如何通信
对内rpc,对外 基于restful 风格的 http+JSON 进行通信
在SpringCloud Netflix 技术栈中:
RestTemplate + Ribbon 实现客户端负载均衡
Feign: 实现客户端负载均衡
在Springboot + dubbo + zookeer 中:
dubbo: 服务之间使用rpc进行通信,故dubbo 是一款高性能的RPC 通信框架,而SpringCloud 是目前来说完整的微 服务解决方案,基于springboot 来进行构建微服务。
2、服务与服务依赖关系(熔断、限流、服务雪崩)
SpringCloud Netflix :
熔断、服务的降级:Hystrix + feign
Springboot + dubbo + zookeeper: 技术栈中没有,需借助第三方
3、服务的配置信息如何管理
SpringCloud Netflix:
ConfigServer + ConfigClient
4、服务之间如何统一访问
SpringCloud Netflix: Zuul
功能
Spring Cloud Alibaba 项目都是基于 Spring Cloud,而 Spring Cloud 项目又是基于 Spring Boot 进行开发,并且都是使用 Maven 做项目管理工具。在实际开发中,我们一般都会创建一个依赖管理项目作为 Maven 的 Parent 项目使用,这样做可以极大的方便我们对 Jar 包版本的统一管理。依赖Pom如下
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.0.6.RELEASE
com.hello.sc.alibaba
hello-spring-cloud-alibaba-parent
1.0.0-SNAPSHOT
pom
hello-spring-cloud-alibaba-parent
1.8
UTF-8
UTF-8
Finchley.SR2
0.2.1.RELEASE
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
org.springframework.cloud
spring-cloud-alibaba-dependencies
${spring-cloud-alibaba.version}
pom
import
org.apache.maven.plugins
maven-compiler-plugin
true
org.apache.maven.plugins
maven-jar-plugin
false
true
true
true
org.apache.maven.plugins
maven-resources-plugin
org.apache.maven.plugins
maven-install-plugin
org.apache.maven.plugins
maven-clean-plugin
org.apache.maven.plugins
maven-antrun-plugin
org.apache.maven.plugins
maven-dependency-plugin
org.apache.maven.plugins
maven-javadoc-plugin
prepare-package
jar
net.alchim31.maven
yuicompressor-maven-plugin
1.5.1
prepare-package
compress
UTF-8
false
true
30000
true
**/*.js
**/*.css
**/*.min.js
**/*.min.css
src/main/java
**/*.java
src/main/resources
aliyun-repos
Aliyun Repository
http://maven.aliyun.com/nexus/content/groups/public
true
false
sonatype-repos
Sonatype Repository
https://oss.sonatype.org/content/groups/public
true
false
sonatype-repos-s
Sonatype Repository
https://oss.sonatype.org/content/repositories/snapshots
false
true
spring-snapshots
Spring Snapshots
https://repo.spring.io/snapshot
true
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
false
aliyun-repos
Aliyun Repository
http://maven.aliyun.com/nexus/content/groups/public
true
false
主要增加了org.springframework.cloud:spring-cloud-alibaba-dependencies
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZChfhQi0-1661735407141)(https://www.funtl.com/assets1/Lusifer_20190113133947.png)]
]