二、SpringCloud介绍及常用组件

??Spring Cloud 作为Java语言的微服务框架 ,它依赖于 Spring Boot,有快速开发、持续交付和 容易部署等特点。 Spring Cloud的组件非常多,涉及微服务的方方面面,
??SpringCloud 的首要目标就是通过提供一系列开发组件和框架,帮助开发者迅速搭建一个分布式的微服务系统 。Spring Cloud是通过包装其他技术框架来实现的,例如包装开源的Netflix oss 组件, 实现了一套通过基于注解、 Java配置和基于模版开发的微服务框架。
1、Spring Cloud常用组件

  • 服务发现——Netflix Eureka
  • 客服端负载均衡——Netflix Ribbon
  • 断路器——Netflix Hystrix
  • 服务网关——Netflix Zuul
  • 分布式配置——Spring Cloud Config
1.1 服务注册和发现组件 Eureka 二、SpringCloud介绍及常用组件
文章图片
Eureka作用原理图 作用:实现服务治理(服务注册与发现)
简介:Spring Cloud Eureka是Spring Cloud Netflix项目下的服务治理模块。由两个组件组成:Eureka服务端和Eureka客户端。Eureka服务端用作服务注册中心。支持集群部署。Eureka客户端是一个java客户端,用来处理服务注册与发现。在应用启动时,Eureka客户端向服务端注册自己的服务信息,同时将服务端的服务信息缓存到本地。客户端会和服务端周期性的进行心跳交互,以更新服务租约和服务信息。
1.2 负载均衡组件 Ribbon 二、SpringCloud介绍及常用组件
文章图片
Ribbon负载均衡实现图
作用:Ribbon,主要提供客户侧的软件负载均衡算法。
简介:Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。注意看上图,关键点就是将外界的rest调用,根据负载均衡策略转换为微服务调用。
1.3 熔断组件 Hystrix 二、SpringCloud介绍及常用组件
文章图片
雪崩效应 作用:断路器,保护系统,控制故障范围。
简介:为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。
1.4 路由网关 Zuul 二、SpringCloud介绍及常用组件
文章图片
网关架构图 作用:实现路由转发、请求过滤
简介:路由网关Zuul有智能路由和过滤的功能。内部服务的API接口通过Zuul网关统一对外暴露,内部服务的API接口不直接暴露,防止了内部服务敏感信息对外暴露。在默认的情况下, Zuul和Ribbon相结合,能够做到负载均衡 、智能路由。Zuul的过滤功能是通过拦截请求来实现的 ,可以对一些用户的角色和权限进行判断 ,起到安全验证的作用 ,同时也可以用于输出实时的请求曰志。
1.5 Config 二、SpringCloud介绍及常用组件
文章图片
配置管理 【二、SpringCloud介绍及常用组件】作用:配置管理
简介:SpringCloud Config提供服务器端和客户端。Server 端读取本地仓库或者远程仓库的配置文件,所有的 Client 向 Server 读 取配置信息,从而达到配置文件统一管理的目的。服务器存储后端的默认实现使用git,因此它轻松支持标签版本的配置环境,以及可以访问用于管理内容的各种工具。 通常情况下, SpringCloudConfig和 Spring CloudBus相互配合刷新指定 Client或所有 Client的配置文件。

    推荐阅读