Spring Cloud 应用分析(一):基础架构及分析大纲

前言

本博文试图从整体上去把握 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基础教程/

Spring Cloud中国社区论坛

Spring Brixton 官方文档

http://itmuch.com/http://itmuch.com/spring-cloud/zuul/zuul-filter-in-spring-cloud/#more