SpringCloud中几个很重要的组件
-
- 写在前面
- 一、spring-cloud-starter-eureka
- 二、spring-cloud-starter-eureka-server
- 三、spring-cloud-starter-turbine
- 四、spring-cloud-starter-hystrix
- 五、spring-cloud-starter-ribbon
- 六、spring-cloud-starter-zuul
- 七、spring-cloud-starter-sleuth
- 八、spring-cloud-starter-alibaba
- 九、spring-cloud-starter-archaius
- 十、spring-cloud-starter-config
- 十一、spring-cloud-starter-bus-amqp
- 十二、spring-cloud-starter-consul
- 十三、spring-cloud-starter-consul-config
- 十四、spring-cloud-starter-consul-discovery
- 十五、spring-cloud-starter-contract-stub-runner
- 十六、spring-cloud-starter-contract-verifier
- 十七、spring-cloud-starter-feign
- 十八、spring-cloud-starter-gateway
- 十九、spring-cloud-starter-oauth2
- 二十、spring-cloud-starter-openfeign
- 二十一、spring-cloud-starter-stream-kafka
- 二十二、spring-cloud-starter-stream-rabbit
- 二十三、spring-cloud-starter-stream-rocketmq
- 二十四、spring-cloud-starter-zipkin
- 二十五、其他
写在前面
其实在这些个Starter之上,是一个团队的努力结果,从下图可以看出,每个Starter都是基于相应类似Netflix团队的Starter-Netflix-XX,开发,团队会根据需要,在Starter-Netflix-XXX中封装SDK,最后整合使用在Starter中,需要注意的是,当我们想当然的想使用某些依赖的时候,你确定,是否添加已重复的依赖,或者你根本就没使用更方便集成的Starter-XXX依赖,只是基于某些Starter-Netflix-XXX依赖,开发…
注意,Starter-Netflix-XXX,只是Netflix团队基于SpringCloud开发的微服务的架构,也是目前使用份额最大的一部分,包括这24个Starter,开箱即用的Starter,大部分也是Netflix团队的成果,还有包括Spring家族,淘宝团队等等…
下面的内容,就是围绕这24个Starter…
一、spring-cloud-starter-eureka
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
<version>1.3.2.RELEASE</version>
</dependency>
1.1、待办事项
- Netflix团队
- Demo
1.2、基本介绍
微服务中常用到的用于管理微服务间的调度和监控用的
源码中冰山一角,是Netflix团队集成多种优秀的实现以及多种结构的数据封装而成的
二、spring-cloud-starter-eureka-server
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
<version>1.3.2.RELEASE</version>
</dependency>
2.1、待办事项
- Netflix团队
- Demo
三、spring-cloud-starter-turbine
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-turbine</artifactId>
<version>1.4.7.RELEASE</version>
</dependency>
3.1、待办事项
- Netflix
- Demo
四、spring-cloud-starter-hystrix
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
<version>1.3.1.RELEASE</version>
</dependency>
4.1、待办事项
- Netflix
- Demo
五、spring-cloud-starter-ribbon
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
<version>1.4.7.RELEASE</version>
</dependency>
5.1、待办事项
- Netflix团队
- Demo
六、spring-cloud-starter-zuul
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
<version>1.3.0.RELEASE</version>
</dependency>
6.1、待办事项
- Netflix团队
- Demo
6.2、API 统一网关
简单配置如下
zuul:
prefix: /api
routes:
hello-server:
path: /server/**
url: http://localhost:8071
hello-client:
path: /client/**
serviceId: HELLO-CLIENT
这样可以通过访问当前服务的 ip:port/api/server/xxx,即可访问hello-server的xxx服务
七、spring-cloud-starter-sleuth
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
7.1、待办事项
- Spring团队
- Demo
八、spring-cloud-starter-alibaba
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba</artifactId>
<version>0.9.0.RELEASE</version>
</dependency>
淘宝团队,这是一个Pom工程
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-alibaba</artifactId>
<version>0.9.0.RELEASE</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>spring-cloud-starter-alibaba</artifactId>
<packaging>pom</packaging>
<name>Spring Cloud Alibaba Starters</name>
<description>Spring Cloud Alibaba Starters</description>
<modules>
<module>spring-cloud-starter-alibaba-nacos-config</module>
<module>spring-cloud-starter-alibaba-nacos-config-server</module>
<module>spring-cloud-starter-alibaba-nacos-discovery</module>
<module>spring-cloud-starter-alibaba-sentinel</module>
<module>spring-cloud-starter-alibaba-seata</module>
<module>spring-cloud-starter-stream-rocketmq</module>
<module>spring-cloud-starter-bus-rocketmq</module>
<module>spring-cloud-starter-dubbo</module>
</modules>
8.1、待办事项
- 淘宝团队
- Demo
九、spring-cloud-starter-archaius
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-archaius</artifactId>
<version>1.3.6.RELEASE</version>
</dependency>
9.1、待办事项
- Netflix团队
- Demo
十、spring-cloud-starter-config
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
<version>RELEASE</version>
</dependency>
10.1、待办事项
- Spring团队
- Demo
10.2、基本介绍是springcloud生态系统中的分布式的配置实现,
这里有代码示例,基于GITHUB作为分布式配置的管理
Github仓库如下
两个Maven工程(Client + Server) + Github的仓库
上面的代码示例没有实现热加载
关于,实现热部署,需要用到 MQ + Spring Cloud Bus,有时间我再整理出代码实现
十一、spring-cloud-starter-bus-amqp
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
11.1、待办事项
- Spring团队
- Demo
十二、spring-cloud-starter-consul
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul</artifactId>
<version>2.0.1.RELEASE</version>
</dependency>
12.1、待办事项
- Consul团队
- Demo
十三、spring-cloud-starter-consul-config
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-config</artifactId>
<version>2.0.1.RELEASE</version>
</dependency>
13.1、待办事项
- Consul团队
- Demo
十四、spring-cloud-starter-consul-discovery
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
<version>2.0.1.RELEASE</version>
</dependency>
14.1、待办事项
- Consul团队
- Demo
十五、spring-cloud-starter-contract-stub-runner
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-contract-stub-runner</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
15.1、待办事项
- Spring家族
- Demo
十六、spring-cloud-starter-contract-verifier
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-contract-verifier</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
16.1、待办事项
- Spring家族
- Demo
十七、spring-cloud-starter-feign
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
<version>1.4.7.RELEASE</version>
</dependency>
17.1、待办事项
- Netflix团队
- Demo
十八、spring-cloud-starter-gateway
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
18.1、待办事项
- Spring家族
- Demo
十九、spring-cloud-starter-oauth2
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
<version>1.2.0.RELEASE</version>
</dependency>
19.1、待办事项
- Spring家族
- Demo
二十、spring-cloud-starter-openfeign
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
20.1、待办事项
- Netflix团队
- Demo
二十一、spring-cloud-starter-stream-kafka
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-kafka</artifactId>
<version>2.0.1.RELEASE</version>
</dependency>
21.1、待办事项
- Spring家族
- Demo
二十二、spring-cloud-starter-stream-rabbit
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
22.1、待办事项
- Spring家族
- Demo
二十三、spring-cloud-starter-stream-rocketmq
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rocketmq</artifactId>
<version>0.9.0.RELEASE</version>
</dependency>
23.1、待办事项
- 淘宝团队
- Demo
二十四、spring-cloud-starter-zipkin
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
24.1、待办事项
- Spring家族
- Demo
二十五、其他
SpringCloud中还有很多,类似的开箱即用的Starter,谷歌,亚马逊,微软等等都有相应的微服务封装使用,只是基于资源和网络有限,不太方便整理…