Spring Cloud概述
Spring cloud是一个基于Spring Boot实现的服务治理工具包,在微服务架构中用于管理和协调服务。
组成部分
Spring Cloud是一系列框架的有序集合。
它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。
Spring将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
组件 | 作用 |
---|---|
Spring Cloud Config | 配置中心,利用git集中管理程序的配置 |
Spring Cloud Netflix | 集成众多Netflix的开源软件 |
Spring Cloud Bus | 消息总线,利用分布式消息将服务和服务实例连接在一起,用于在一个集群中传播状态的变化 |
Spring Cloud for Cloud Foundry | 利用Pivotal Cloudfoundry集成应用程序 |
Spring Cloud Cloud Foundry Service Broker | 为建立管理云托管服务的服务代理提供了一个起点 |
Spring Cloud Cluster | 基于Zookeeper, Redis, Hazelcast, Consul实现的领导选举和平民状态模式的抽象和实现 |
Spring Cloud Consul | 基于Hashicorp Consul实现的服务发现和配置管理 |
Spring Cloud Security | 在Zuul代理中为OAuth2 rest客户端和认证头转发提供负载均衡 |
Spring Cloud Sleuth | 应用的分布式追踪系统,和Zipkin,HTrace,ELK兼容 |
Spring Cloud Data Flow | 一个云本地程序和操作模型,组成数据微服务在一个结构化的平台上 |
Spring Cloud Stream | 基于Redis,Rabbit,Kafka实现的消息微服务,简单声明模型用以在Spring Cloud应用中收发消息 |
Spring Cloud Stream App Starters | 基于Spring Boot为外部系统提供spring的集成 |
Spring Cloud Task | 短生命周期的微服务,为SpringBooot应用简单声明添加功能和非功能特性 |
Spring Cloud Task App Starters | |
Spring Cloud Zookeeper | 服务发现和配置管理基于Apache Zookeeper |
Spring Cloud for Amazon Web Services | 快速和亚马逊网络服务集成 |
Spring Cloud Connectors | 便于PaaS应用在各种平台上连接到后端像数据库和消息经纪服务 |
Spring Cloud Starters | (项目已经终止并且在Angel.SR2后的版本和其他项目合并) |
Spring Cloud CLI | 插件用Groovy快速的创建Spring Cloud组件应用 |
… | … |
其中比较核心的组件为:
服务发现——Netflix Eureka
客服端负载均衡——Netflix Ribbon/Feign
服务网关——Netflix Zuul
断路器——Netflix Hystrix
分布式配置——Spring Cloud Config
总的来说:
Spring Cloud是微服务架构中服务治理工具集,有很多产品组成。
Spring Cloud是一套快速配置脚手架,可以基于Spring Boot快速开发单个微服务。
由于微服务架构中存在多个微服务,那么如何管理和协调这些服务呢?就需要服务治理框架,而springcloud就是是一个基于Spring Boot实现的服务治理工具包
相较于单体应用这个架构模式,微服务架构更加适用于大型项目,虽然刚开始成本高,但是随着项目开展成本会变得越来越低