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,谷歌,亞馬遜,微軟等等都有相應的微服務封裝使用,只是基於資源和網絡有限,不太方便整理…