spring cloud组织架构

spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

spring cloud组织架构_第1张图片

主要项目

cloud 下的项目可以参考:https://springcloud.cc/
Spring Cloud Config
Spring Cloud Netflix
Spring Cloud Bus
Spring Cloud Security
Spring Cloud Zookeeper
......

Spring Cloud Config

由git仓库支持的统一配置管理。配置资源直接映射到SpringEnvironment,但如果需要,可以使用非Spring应用程序。

简介

Spring Cloud Config为分布式系统中的外部统一配置中心提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部(externalized)配置属性。客户端和服务器映射的概念与Spring Environment和PropertySource抽象相同,因此它们与Spring应用程序非常契合,但可以与任何语言的应用程序一起使用。伴随着应用程序通过从开发环境到测试环境和生产环境的部署过程,您可以管理这些环境之间的配置,并确定应用程序不同环境迁移时需要所有配置属性。服务器存储端的默认实现使用git,因此它可以轻松支持带标签版本的配置环境,以及可以访问用于管理的内容的各种工具。可以轻松添加替代实现,并使用Spring配置将其插入。

功能

Spring Cloud Config Server功能:

  • 基于HTTP资源的外部配置API(名称/值对或等效的YAML内容)
  • 对属性值加密和解密(对称或非对称)
  • 可以使用@EnableConfigServer轻松嵌入Spring Boot应用程序

Config Client功能(适用于Spring应用程序):

  • 绑定到Config Server并使用远程的属性源初始化Spring Environment
  • 对属性值加密和解密(对称或非对称)

Spring Cloud Netflix

集成各种Netflix OSS组件(Eureka, Hystrix, Zuul, Archaius等)。

简介

Spring Cloud Netflix通过自动配置、绑定到Spring Environment 和其他Spring编程模型语法来为Spring Boot应用程序提供Netflix OSS集成。通过几个简单的注解,您可以快速启用和配置应用程序中的常见模式,并使用经过考验的Netflix组件构建大型分布式系统。 提供的常见模式包括服务发现(Eureka),融断机制(Hystrix),智能路由(Zuul)和客户端负载平衡(Ribbon)。

Netflix 与spring cloud

Netflix是一家做视频的网站,且是一家没有CTO的公司,正是这样的组织架构能使产品与技术无缝的沟通,从而能快速迭代出更优秀的产品。在当时软件敏捷开发中,Netflix的更新速度不亚于当年的微信后台变更,虽然微信比Netflix迟发展,但是当年微信的灰度发布和敏捷开发应该算是业界最猛的。

Netflix由于做视频的原因,访问量非常的大,从而促使其技术快速的发展在背后支撑着,也正是如此,Netflix开始把整体的系统往微服务上迁移。

Netflix的微服务做的不是最早的,但是确是最大规模的在生产级别微服务的尝试。也正是这种大规模的生产级别尝试,在服务器运维上依托AWS云。当然AWS云同样受益于Netflix的大规模业务不断的壮大。

Netflix的微服务大规模的应用,在技术上毫无保留的把一整套微服务架构核心技术栈开源了出来,叫做Netflix OSS,也正是如此,在技术上依靠开源社区的力量不断的壮大。

Pivotal在Netflix开源的一整套核心技术产品线的同时,做了一系列的封装,就变成了Spring Cloud。随着cloud 的不断壮大,Netflix变成了我们现在熟悉的spring cloud netflix。

功能

Spring Cloud Netflix功能:

  • 服务发现:可以注册Eureka实例,客户端可以使用Spring管理的bean来发现实例
  • 服务发现:可以使用声明式Java配置创建嵌入式Eureka服务器
  • 融断机制:Hystrix客户端可以使用简单的注释驱动方法装饰器构建
  • 融断机制:具有声明式Java配置的嵌入式Hystrix仪表板
  • 声明性REST客户端:Feign创建了一个使用JAX-RS或Spring MVC注解装饰的接口的动态实现
  • 客户端负载均衡器:Ribbon
  • 外部配置:从Spring Environment 到Archaius的桥梁(使用Spring Boot约定启用Netflix组件的本地配置)
  • 路由器和过滤器:Zuul过滤器的自动注册,以及反向代理创建的简单配置方法

Spring Cloud Bus

用于将服务和服务实例以及分布式消息传递链接的事件总线。 用于在集群中传播状态更改(例如配置更改事件)。

简介

Spring Cloud Bus将分布式系统的节点与轻量级消息代理连接起来。 这可以用于广播状态改变(例如配置改变)或其他管理指令。 目前唯一的实现是使用AMQP代理作为传输,但是相同的基本功能集(还有一些取决于传输)在其他传输的路线图上。

Spring Cloud Security

在Zuul代理中支持负载均衡的OAuth2 rest 客户端和认证头转发。

简介

Spring Cloud Security提供了一套用于构建安全的原语级应用程序和最小化服务。 可以从外部(或集中)高度配置的声明式模型适用于通常使用中央契约管理服务的大型合作远程组件系统的实现。 在像Cloud Foundry这样的服务平台上也很容易使用。基于Spring Boot和Spring Security OAuth2,我们可以快速创建实现单点登录,令牌中继和令牌交换等常见模式的系统。

功能

  • 在Zuul代理中将SSO令牌从前端转发到后端服务
  • 资源服务器之间的中继令牌
  • 一个拦截器可以使一个Feign客户端的行为像OAuth2RestTemplate(获取令牌等)
  • 在Zuul代理中配置下游认证

Spring Cloud Zookeeper

使用Apache Zookeeper进行服务发现和配置管理。

简介

Spring Cloud Zookeeper通过自动配置和绑定到Spring Environment和其他Spring编程模型语法来为Spring Boot应用程序提供Apache Zookeeper集成。 通过几个简单的注释,您可以快速启用和配置应用程序中的常见模式,并使用Zookeeper构建大型分布式系统。 提供的模式包括服务发现和分布式配置。

功能

  • 服务发现:可以向Zookeeper注册实例,客户端可以使用Spring管理的bean来发现实例
  • 通过Spring Cloud Netflix支持客户端负载均衡器Ribbon
  • 通过Spring Cloud Netflix支持Zuul,动态路由器和过滤器
  • 分布式配置:使用Zookeeper作为数据存储

你可能感兴趣的:(spring cloud组织架构)