SpringCloud五大核心组件介绍

这里将主要围绕五大核心组件来进行,其实SpeingCloud有很多组件,具体可以参照

Spring Cloud中文网-官方文档中文版https://www.springcloud.cc/

五大核心组件如下:

1.服务发现——Netflix Eureka客服端

2.负载均衡——Netflix Ribbon

3.断路器——Netflix Hystrix

4.服务网关——Netflix Zuul

5.分布式配置——Spring Cloud Config

我们大概看一下SpringCloud现有的组件吧

 是不是很奇怪明明有这么多为什么是五大组件,其实是五大核心组件,也就是比较常用并且可以解决微服务的组件,各组件分工有别,协调统一。

 1.Eureka 是一种 RESTful(代表性状态传输)服务,主要用于 AWS 云中,用于 中间层服务器的发现、负载平衡和故障转移。 它在 Netflix 中层基础设施中发挥着关键作用。

作用:实现服务治理(服务注册与发现)

简介:Spring Cloud Eureka是Spring Cloud Netflix项目下的服务治理模块。

由两个组件组成:Eureka服务端和Eureka客户端。

Eureka服务端用作服务注册中心。支持集群部署。

Eureka客户端是一个java客户端,用来处理服务注册与发现。

在应用启动时,Eureka客户端向服务端注册自己的服务信息,同时将服务端的服务信息缓存到本地。客户端会和服务端周期性的进行心跳交互,以更新服务租约和服务信息。
(可以和Zookpeer进行对比学习)

2.Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模版请求自动转换成客户端负载均衡的服务调用。

Ribbon是一个客户端IPC库,它在云环境中经受了考验。 它提供了以下特性 

  • 1.负载平衡  

  • 2.容错  

  • 3.在异步和响应模型中支持多种协议(HTTP, TCP, UDP)  

  • 4.缓存和批处理 

作用:主要提供客户侧的软件负载均衡算法。

Ribbon客户端组件提供一系列完善的配置选项,比如连接超时、重试、重试算法等。Ribbon内置可插拔、可定制的负载均衡组件。下面是用到的一些负载均衡策略:

    简单轮询负载均衡
    加权响应时间负载均衡
    区域感知轮询负载均衡
    随机负载均衡

Ribbon中还包括以下功能:

    易于与服务发现组件(比如Netflix的Eureka)集成
    使用Archaius完成运行时配置
    使用JMX暴露运维指标,使用Servo发布
    多种可插拔的序列化选择
    异步和批处理操作(即将推出)
    自动SLA框架(即将推出)
    系统管理/指标控制台(即将推出)

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

 Hystrix 是一个延迟和容错库,旨在隔离对远程系统、服务和第 3 方库的访问点,停止级联故障并在故障不可避免的复杂分布式系统中实现弹性。

作用:

  • 保护线程资源:防止单个服务的故障耗尽系统中的所有线程资源。
  • 快速失败机制:当某个服务发生了故障,不让服务调用方一直等待,而是直接返回请求失败。
  • 提供降级(FallBack)方案:在请求失败后,提供一个设计好的降级方案,通常是一个兜底方法,当请求失败后即调用该方法。
  • 防止故障扩散:使用熔断机制,防止故障扩散到其他服务。
  • 监控功能:提供熔断器故障监控组件 Hystrix Dashboard,随时监控熔断器的状态。
     

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

Zuul提供了服务网关的功能,可以实现

  • 负载均衡
  • 反向代理
  • 动态路由
  • 请求转发等功能

Zuul大部分功能是通过过滤器实现的,除了标准的四种过滤器类型,还支持自定义过滤器。

使用@EnableZuulProxy注解,Spring容器初始化时,会将Zuul的相关配置初始化,其中包含一个Spring Boot的Bean:ServletRegistrationBean,该类主要用于注册Servlet。

在Servlet的service方法中,执行各种Zuul过滤器。下图为HTTP请求在ZuulServlet中的生命周期。

5.Spring Cloud Config 配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值