Spring Cloud

  • Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。

  • Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

Spring Cloud组成

  • Spring Cloud的子项目,大致可分成两类,对于我们想快速实践微服务的开发者来说,第一类子项目就已经足够使用
    • 第一类是对现有成熟框架Spring Boot的封装和抽象,比如对Netflix服务组件的封装,也是数量最多的项目
    • 第二类是开发了一部分分布式系统的基础设施的实现,如Spring Cloud Stream扮演的就是kafka, ActiveMQ这样的角色

Spring Cloud Netflix

  • SpringCloud下包含了多个工程,其中的Spring Cloud Netflix提供了一系列搭建微服务基础架构的功能组件,Netflix的部分组件及功能特性如下:

    • Eureka(服务注册与发现框架):一个基于REST风格的服务组件,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移
    • Hystrix(服务容错组件):容错管理工具,旨在通过控制服务和第三方库的节点,从而对延迟和故障提供强大的容村能力
    • Zuul(服务网关):边缘服务工具,提供动态路由、监控、贪心、安全等边缘服务
    • Ribbon(客户端负载均衡器):提供客户端负载均衡算法,将Netflix的中间层服务连接起来
    • Feign(声明式HTTP客户端):可以创建声明式、模板化的HTTP客户端,进行微服务调用
  • 下面的章节将详细介绍这些Spring Cloud Netflix组件

总结

  • 专人做专事,Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,提供了标准化的、全站式的技术方案

参考