SpringCloud初识

SpringCloud初识

前言

最近也是公司需要,就趁着这波热度,也是把SpringCloud(后面我就简称sc)玩一玩,sc相信大家都不陌生,很多人也都知道是和微服务相关的,但是更多人把sc就理解成微服务了,其实个人觉得这是不太准确的,sc是在SpringBoot(sc)的基础上做的一些改进或者说升级,基于sb的一些组件,这些组件有什么用呢?下面我会给大家介绍,关于sb的相关内容,我后期也会写点,目前自己也还是在研究阶段。下面我们先认识认识sc吧。

什么是SpringCloud?

官方网站:http://spring.io/spring-cloud/

GitHub地址:https://github.com/spring-cloud

SC为开发人员提供了一些工具来快速构建分布式系统中常见模式的工具集(例如配置管理、服务发现、断路器、智能路由, micro-proxy、控制总线、一次性的令牌,全局锁,领导选举、分布式会话集群状态)。这些组件之间协调工作,就构成了整个微服务生态体系。下面我将分别介绍下,SC的各个组件是什么?以及用来干什么?主要也还是参考官方文档的。

首先我们看下图,下图比较完整的介绍了整个SC的一个生态结构组织:

Spring Cloud Config(配置中心)

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

Spring Cloud Netflix(服务治理)

通过自动配置为Spring Boot应用程序提供Netflix OSS集成,并绑定到Spring环境和其他Spring编程模型成语。通过几个简单的注释,您可以快速启用和配置应用程序中的常见模式,并通过经过测试的Netflix组件构建大型分布式系统。提供的模式主要是下面几种:

Eureka(服务注册中心):云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中间层服务发现和故障转移;

Ribbon(客户端负载均衡):Ribbon是一个客户端负载平衡器,可以很好地控制HTTP和TCP客户端的行为,他提供了云端负载均衡,有多种负载均衡策略可供选择,可配合服务发现和断路器使用;

Hystrix(断路器):熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力;

Zuul(智能路由):Zuul 是在云平台上提供动态路由,监控,弹性,安全等边缘服务的框架。Zuul 相当于是设备和 Netflix 流应用的 Web 网站后端所有请求的前门;

Archaius(配置管理类库):配置管理API,包含一系列配置管理API,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能;

Turbine(集群下断路器):Turbine是聚合服务器发送事件流数据的一个工具,用来监控集群下hystrix的metrics情况

Spring Cloud Bus(消息总线)

Spring Cloud Bus将分布式系统的节点与轻量级消息代理链接。这可以用于广播状态更改(例如配置更改)或其他管理指令。一个关键的想法是,Bus就像一个扩展的Spring Boot应用程序的分布式执行器,但也可以用作应用程序之间的通信渠道。当前唯一的实现是使用AMQP代理作为传输,但是相同的基本功能集(还有一些取决于传输)在其他传输的路线图上。

Spring Cloud Stream(消息驱动)

数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息

Spring Cloud Sleuth(服务跟踪)

日志收集工具包,封装了Dapper和log-based追踪以及Zipkin和HTrace操作,为SpringCloud应用实现了一种分布式追踪解决方案

Spring Cloud Consul(服务发现和配置)

封装了Consul操作,consul是一个服务发现与配置工具,与Docker容器可以无缝集成

Spring Cloud Feign(声明式服务调用)

Feign是一种声明式、模板化的HTTP客户端

Spring Cloud Zookeeper(zk工具)

操作Zookeeper的工具包,用于使用zookeeper方式的服务发现和配置管理;

通过自动配置为Spring Boot应用程序提供Zookeeper集成,并绑定到Spring环境和其他Spring编程模型成语。通过几个简单的注释,您可以快速启用和配置应用程序中的常见模式,并使用基于Zookeeper的组件构建大型分布式系统。提供的模式包括服务发现和配置。智能路由(Zuul)和客户端负载平衡(Ribbon),断路器(Hystrix)通过与Spring Cloud Netflix集成提供

Spring Cloud Security(安全工具包)

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

Spring Cloud Data Flow(大数据操作集)

大数据操作工具,作为Spring XD的替代产品,它是一个混合计算模型,结合了流数据与批量数据的处理方式。

Spring Cloud CLI(命令行)

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

Spring Boot CLI 为Spring Cloud提供Spring启动命令行功能。您可以编写运行Spring Cloud组件应用程序(例如@EnableEurekaServer)的Groovy脚本。您还可以轻松地进行加密和解密等操作,以支持具有秘密配置值的Spring Cloud Config客户端。使用Launcher CLI,您可以从命令行一次性启动Eureka,Zipkin,Config Server等服务(在开发时非常有用)。

Spring Cloud Connectors(连接器)

Spring Cloud Connectors为在云平台上运行的基于JVM的应用程序提供了一个简单的抽象,可以在运行时发现绑定的服务和部署信息,并且支持将发现的服务注册为Spring bean。它基于插件模型,以便相同的编译应用程序可以在本地或任何多个云平台上进行部署,并通过Java服务提供程序接口(SPI)支持定制服务定义。

Spring Cloud Cluster(选举)

提供Leadership选举,如:Zookeeper, Redis, Hazelcast, Consul等常见状态模式的抽象和实现

Spring Cloud Starters(启动器)

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

END

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180614B1M81U00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券