Spring Cloud学习整理

Netflix 在Spring Cloud项目中占着重要的作用,Netflix 公司提供了包括Eureka、Hystrix、Zuul、Archaius等在内的很多组件,在微服务架构中至关重要,Spring在Netflix 的基础上,封装了一系列的组件,命名为:Spring Cloud Eureka、Spring Cloud Hystrix、Spring Cloud Zuul等
 

常用组件

Spring Cloud Eureka

注册中心。负责服务的注册与发现,维护服务生产者、注册中心、服务消费者三者之间的关系。

1、两台Eureka服务注册中心相互注册,构成的服务注册中心的主从复制集群。
2、然后服务提供者向注册中心进行注册、续约、下线服务等。
3、服务消费者向Eureka注册中心拉去服务列表并维护在本地(这也是客户端发现模式的机制体现!)。
4、然后服务消费者根据从Eureka服务注册中心获取的服务列表选取一个服务提供者进行消费服务。


Spring Cloud Ribbon

客户端负载均衡。消费者从注册中心获取生产者的服务列表并维护在本地的,这种客户端发现模式的方式是消费者选择合适的节点进行访问生产者提供的数据,消费者调用生产者的服务接口通过Spring Cloud Ribbon来完成,并由Spring Cloud Ribbon来选择合适节点(客户端负载均衡)进行调用。

Spring Cloud Feign

Spring Cloud Feign 是一个声明web服务客户端,这使得编写Web服务客户端更容易,使用Feign 创建一个接口并对它进行注解,它具有可插拔的注解支持包括Feign注解与JAX-RS注解,Feign还支持可插拔的编码器与解码器, Feign 客户端集成 Ribbon 和 Eureka ,使得Eureka和Ribbon的使用更为简单。对口定义了@FeginClient注解的接口,Fegin就会针对这个接口创建一个动态代理,接着调用接口的时候,本质就是调用Fegin创建的动态代理,Fegin的动态代理会根据在接口上的@RequestMapping等注解,来动态构造要请求的服务的地址。

Spring Cloud Hystrix

断路器。具备服务降级、熔断、线程和信号隔离、请求缓存、请求合并以及服务监控等强大功,能保护系统,控制故障范围。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。Hystrix使用舱壁模式实现线程池的隔离,它会为每一个依赖服务创建一个独立的线程池,这样就算某个依赖服务出现延迟过高的情况,也只是对该依赖服务的调用产生影响,而不会拖慢其他的依赖服务。

Spring Cloud Config

分布式配置。对于微服务还不是很多的时候,各种服务的配置管理起来还相对简单,但是当成百上千的微服务节点起来的时候,服务配置的管理变得会复杂起来。

分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件Spring Cloud Config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在Cpring Cloud Config 组件中,分两个角色,一是Config Server,二是Config Client。

Config Server用于配置属性的存储,存储的位置可以为Git仓库、SVN仓库、本地文件等,Config Client用于服务属性的读取。

Spring Cloud Zuul

服务网关。类似nginx,反向代理的功能,不过netflix自己增加了一些配合其他组件的特性。通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由、均衡负载功能之外,它还具备了权限控制等功能。Spring Cloud Netflix中的Zuul就担任了这样的一个角色,为微服务架构提供了前门保护的作用,同时将权限控制这些较重的非业务逻辑内容迁移到服务路由层面,使得服务集群主体能够具备更高的可复用性和可测试性。

Spring Cloud Bus

消息总线。有了Config Server,我们可以将配置存储到Git等地方,通过Config Client进行读取,但是我们的配置文件不可能是一直不变的,当我们的配置文件放生变化的时候如何进行更新哪?

一种最简单的方式重新启动一下Config Client进行重新获取,但这样肯定不适用,Spring Cloud Bus正是提供一种操作使得我们在不关闭服务的情况下更新我们的配置。当然动态更新服务配置只是消息总线的一个用处,还有很多其他用处。
 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值