alexpdh's blog

Spring Cloud 实践(一):Spring Cloud 介绍

概述

当下互联网最热的架构模式当属微服务架构了吧,关于微服务的概念和介绍可以参照大神 Martin Flower 的文章 Microservices ,国内翻译版本 http://www.cnblogs.com/liuning8023/p/4493156.html 。而 Spring Cloud 则是伴随着微服务概念诞生的飞速发展的开源框架。


Spring Cloud 介绍

Spring Cloud 是一个依赖于 Spring Boot 快速构建分布式系统的通用模型的云应用开发工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线),它是由一些列框架组成的集合框架。


Spring Cloud 特性

Spring Cloud专注于提供良好的开箱即用经验的典型用例和可扩展性机制覆盖。

  • 分布式/版本化配置
  • 服务注册和发现
  • 路由
  • service - to - service调用
  • 负载均衡
  • 断路器
  • 分布式消息传递

Spring Cloud 主要组成成员

Spring Cloud 是由众多子项目组成的集合框架,主要项目包括:

Spring Cloud Config

配置中心,为分布式系统中的外部配置提供服务器和客户端支持。服务端用于连接远程配置仓库和供客户端获取配置信息;客户端则是微服务中的各个应用。它实现了客户端和服务端上Spring EnvironmentPropertySource的抽象映射。Spring Cloud Config 默认采用 Git 来存储服务端的配置信息,另外也提供了本地存储和 Subversion 的方式。

Spring Cloud Netflix

与 Netflix OSS集成,提供的模式包括服务发现(Eureka),断路器(Hystrix),智能路由(Zuul)和客户端负载平衡(Ribbon)。

服务发现:Eureka

一个基于 REST 的服务中心,实现微服务的注册与发现,包括 server 和 client 两部分。

  • Eureka Server:供各 Client 注册自己;
  • Eureka Client :提供服务的客户端;
断路器:Hystrix

通过断路器可以控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。

智能路由:Zuul

为微服务架构提供了前门保护的作用,同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,使得服务集群主体能够具备更高的可复用性和可测试性。

客户端负载平衡:Ribbon

Ribbon是一个客户端负载均衡器,它可以很好地控制HTTP和TCP客户端的行为。

Spring Cloud Bus

Spring Cloud Bus 将分布式系统的节点与轻量级消息代理链接。这可以用于广播状态更改(例如配置更改)或其他管理指令。

Spring Cloud Stream

轻量级事件驱动的微服务框架,可快速构建可连接到外部系统的应用程序。使用Apache Kafka或RabbitMQ在Spring Boot应用程序之间发送和接收消息的简单声明式模型。

spring cloud stream app starters

Spring Cloud任务应用程序启动器是Spring Boot应用程序,可能是任何进程,包括不会永远运行的Spring Batch作业,并且它们在有限时间的数据处理之后结束/停止。

Spring Cloud for Cloud Foundry

将您的应用程序与Pivotal Cloudfoundry集成。提供服务发现实现,还可以轻松实现通过SSO和OAuth2保护资源,还可以创建Cloudfoundry服务代理。

spring cloud cluster

提供在分布式系统中的集群所需要的基础功能支持。

Spring Cloud Consul

Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件。

spring cloud security

在Zuul代理中为负载平衡的OAuth2休眠客户端和认证头中继提供支持。

spring cloud sleuth

适用于Spring Cloud应用程序的分布式跟踪,与Zipkin,HTrace和基于日志(例如ELK)跟踪兼容。

spring cloud data flow

针对现代运行时的可组合微服务应用程序的云本地编排服务。易于使用的DSL,拖放式GUI和REST-API一起简化了基于微服务的数据管道的整体编排。

spring cloud zookeeper

Zookeeper的服务发现和配置管理。

spring cloud for amazon web services

轻松集成托管的Amazon的Web Services服务。它通过使用spring的idioms和APIs便捷集成AWS服务,例如缓存或消息API。开发人员可以围绕托管服务,不必关心基础架构来构建应用。

spring cloud connectors

使PaaS应用程序在各种平台上轻松连接到后端服务,如数据库和消息代理(以前称为“Spring Cloud”的项目)。

spring cloud starters

Spring Boot式的启动项目,为Spring Cloud提供开箱即用的依赖管理。

Spring Cloud CLI

基于 Spring Boot CLI,可以让你以命令行方式快速建立云组件。


参考文献

alexpdh wechat
欢迎扫一扫关注 程序猿pdh 公众号!