前言
本博文试图从整体上去把握 Spring Cloud 的最基本架构,梳理出各个核心组件的作用,所处的位置以及相互之间的关联关系;进而得出分析 Spring Cloud 的合理思路和大纲;
本文为作者的原创作品,转载需注明出处;
蓝图
如图,通过两个微服务 A 和 B 描绘了一个最简单的 Spring Cloud 的基础架构模型,从该模型中,我们可以清楚的看到微服务应用是如何通过 Spring Cloud 进行管理的;
Eureka Server
用来进行微服务的注册;Ribbon / Feign
用来实现微服务和微服务之间的接口发现;Ribbon
服务发现Feign
基于 Ribbon,根据远程接口动态实现可以进行远程调用的代理类(基于 RestTemplate);Feign 引用了 Hystric 实现了熔断机制;Hystrix
断路器,当某个远程接口不可用的时候,迅速失败;而保证在高并发大批量访问的时候,不会因为某个接口不可用,而造成大量请求被阻塞而导致系统性能不稳定;
ZUUL
外部应用访问 Spring Cloud 内部微服务的入口,ZUUL 主要提供认证、路由、转发等功能;ZUUL 结合 Eureka Server 来发现微服务的调用接口;Config Server
结合 Git,实现多个不同版本微服务的配置和部署;通过 Config Server 可以快速的部署不同版本的微服务应用;
这里的流程是,用户通过 ZUUL 发起对微服务 A 的调用,然后微服务 A 又通过 Ribbon/Feign 发起对微服务 B 的调用;
纲目
从蓝图中,我们可以得到之后博文分析的纲,也就是分析思路;从 Eureka 入手,然后分析 Ribbon、Feign 以及 Hystrix,最后是 ZUUL 和 Config Server;
Reference
http://blog.didispace.com/springcloud1/
http://blog.didispace.com/Spring-Cloud基础教程/
http://itmuch.com/http://itmuch.com/spring-cloud/zuul/zuul-filter-in-spring-cloud/#more