题目起的有点太大,写本文的主要目的,还是想将自己实际应用过程中,遇到的问题及解决方法,做一个总结,并系统梳理一下微服务框架Spring cloud的应用过程,以备后续复习查询。
Spring cloud包含一些列的子项目,比如配置管理(Spring Cloud Config)、服务发现(Netflix Eureka)、断路器(Netflix Hystrix)、动态路由(Netflix zuul)、控制中线(Spring Cloud Bus)等等,使得开发者能够快速建构自己的服务和应用。本文主要描述Spring Cloud的主要特性,并详细记录实践过程、遇到问题及解决方法。
首先,说明一下本人使用软件版本:
- 操作系统:win10 64位
- jdk:1.8.0_73 64位
- idea: Intellij IDEA 2017.2
- maven: 3.5.0
- org.springframework.boot: 2.X(idea集成Spring Initializr,可以快速搭建Spring Boot项目,实践过程中发现,每次 创建的 Spring Boot项目,org.springframework.boot版本会有所不同)
- Spring Cloud:Finchley.SR2
具体项目及子项目规划如下:
项目 | springlearn | spring cloud项目实践 | |
编号 | 模块名称 | 描述 | 端口号 |
模块1 | eurekaserver | 服务注册中心,提供服务注册功能 | 8080 |
模块2 | eurekaclient | 服务提供者,注册服务到服务注册中心 | 8081 |
模块3 | eurekaclient2 | 服务提供者,注册服务到服务注册中心 | 8082 |
模块4 | configserver | 配置中心,提供配置文件的统一管理 | 8090 |
模块5 | ribbonservice | 负载均衡,使用Ribbon实现客户端的负载均衡,并通过Hystrix实现断路器及断路器仪表盘Hystrix Dashboard的使用 | 8091 |
模块6 | feignservice | 负载均衡,用声明式Rest客户端调用远程服务实现负载均衡,并通过Hystrix实现断路器及断路器仪表盘Hystrix Dashboard的使用 | 8092 |
模块7 | zuulservice | 路由网关,通过zuul实现路由和过滤 | 8093 |
后续将分成6个篇章,依次描述Spring Cloud的实践过程,为了便于感兴趣的小伙伴参考,依次完成Spring cloud项目的搭建工作,后续篇章将按照下列顺序进行描述。
(一)Spring Cloud实践: 使用Netflix Eureka实现服务注册与发现
(二)Spring Cloud实践:使用Spring Cloud Config实现分布式配置管理
(三)Spring Cloud实践:使用Netflix Ribbon实现负载均衡
(四)Spring Cloud实践:使用Feign实现负载均衡
(五)Spring Cloud实践:使用Netflix hystrix实现断路器,并使用Netflix hystrix dashboard实现监控
(六)Spring Cloud实践:使用Netflix Zuul实现路由和过滤
参考文献:
1. 官方网站:http://cloud.spring.io/spring-cloud-config/
2. 官网文档:http://projects.spring.io/spring-cloud/spring-cloud.html
3. https://www.cnblogs.com/chry/tag/Spring%20Cloud%E6%95%99%E7%A8%8B/