springcloud及五大组件

springcloud整体架构

springcloud使用场景

  1. 把整个系统按业务拆分成几个子系统
  2. 每个子系统可以部署多个应用,多个应用之间负载均衡
  3. 需要一个服务注册中心,所有服务在里面注册
  4. 客户端通过同一个网关访问后台的服务,通过路由配置,判断url由哪个服务进行处理,请求转发过程也负载均衡
  5. 服务之间需要互相访问
  6. 需要一个断路器处理服务调用的超时和错误
  7. 需要一个监控功能,监控每个服务花费的时间

springcloud组件

  • Spring Clound Config:配置管理开发工具包,可以把配置放到远程服务器,支持git,本地,Subversion
  • Spring Cloud Bus:事件,消息总线,传播配置状态变化,与Config可实现热部署
  • Spring Cloud Netflix:对多种Netfix组件提供开发包工具(即下面的)
  • Netflix Eureka:云端负载均衡,基于REST服务,用于定位,实现云端的负载均衡和中间层服务器故障转移
  • Netflix Hystrix:容器管理工具,通过控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力
  • Netflix Zuul:边缘服务工具,提供路由、监控、弹性、安全等服务
  • Netflix Archaius:配置管理API,提供动态属性变化、线程安全配置操作、回调机制等功能
  • Spring Cloud Sleuth:日志收集工具包,封装了Dapper,Zipkin和HTrace操作
  • Spring Cloud Data Flow:大数据操作工具,通过命令行的方式操作数据流
  • Spring Cloud Security:安全工具包,为你的应用程序添加安全控制,主要指OAuth2
  • Spring Cloud Consul:封装了Consul操作,Consul为一个服务发现配置工具,可与docker集成
  • Spring Cloud Zookeeper:操作Zookeeper工具包,用于zookeeper方式的服务注册和发现
  • Spring Cloud Stream:数据流操作开发包,封装Redis、Rabbit、Kafka等操作

常用五大组件为

服务发现——Netflix Eureka
客服端负载均衡——Netflix Ribbon
断路器——Netflix Hystrix
服务网关——Netflix Zuul
分布式配置——Spring Cloud Config

Eureka简介

eureka.png
  1. Spring Cloud Netflix的一个子模块,也是核心模块之一,用于云端注册发现。
  2. 一个基于REST服务,用于定位服务,实现中间层服务发现和故障转移,由服务端和客户端组成
  3. Eureka服务端用作注册中心,支持集群部署
  4. Eureka客户端为一个java客户端,用来处理服务注册和发现
  5. 在应用启动时,Eureka客户端向服务端注册自己的服务信息,同时将服务端的服务信息缓存到本地。客户端和服务端周期性进行交互

Ribbon简介

Ribbon.jpg

作用:Ribbon,主要提供客户端的负载均衡算法
简介:Ribbon是一种基于HTTP和TCP客户端负载均衡工具、基于Netflix Ribbon实现。通过spring Cloud的封装,可以将Rest模板请求自动转换为客户端负责均衡的服务调用

Hystrix简介

Hystrix.jpg

作用:断路器,保护系统,控制故障范围
简介:为了保证其的高可用,单个服务通常会集群部署。

Config简介

Config.jpg

作用:配置管理
简介:Config提供客户端和服务端,服务器存储后端默认使用git

你可能感兴趣的:(springcloud及五大组件)