Java教程

spring cloud各个组件的主要功能(面试用)

本文主要是介绍spring cloud各个组件的主要功能(面试用),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录
  • spring cloud各个组件的主要功能(面试用)
    • 服务注册中心与配置中心
    • 负载均衡
    • 服务容错
    • 声明式服务调用
    • 网关

spring cloud各个组件的主要功能(面试用)

服务注册中心与配置中心

之所以把这两个组件放一块,是因为使用了一段时间的nacos,因为nacos集成了这两项重要的功能。

注册中心(服务治理)Eureka

维护着一份微服务清单,这些微服务连接Eureka,并且保持心跳,持续表明自己还活着;将当前清单中超时(默认为90秒)没有心跳的服务剔除出去,并且统计心跳失败的比例在15分钟之内是否低于85%(通常由于网络不稳定导致),是的话会进入自我保护模式,不再删除清单中的数据,网络恢复后,会自动退出该模式

配置中心Config

将微服务的配置文件放到统一的位置管理(比如GitHub),然后去获取这些配置文件来启动或部署应用

负载均衡

Ribbon

简单理解就是合理摊分用户的请求,基于某种规则(如轮询,随机连接等)去连接后台服务,默认采用轮询,也可以自定义实现。
ps:与nginx的区别:
Ribbon是客户端负载均衡,服务清单在客户端(从Eureka Server处获得),在发送请求时通过负载均衡算法,在多个服务器之间选择一个进行访问(由客户端决定访问哪个服务器);
对nginx而言,服务清单在服务端,由nginx反向代理进行分配。

服务容错

Hystrix(网上也管它叫熔断器,断路器)

一个防雪崩的工具,雪崩:由于单个服务的延迟,可能导致所有的请求都处于延迟状态,很快就使服务负载饱和了,资源耗尽,直到不可用,最终导致这个分布式系统都不可用。有以下解决办法:

  • 服务降级:超时、资源不足时降级,配合降级接口返回托底数据
  • 服务熔断:当失败率达到阀值自动触发降级,然后尝试恢复
  • 服务隔离:为每一个依赖服务创建一个独立的线程池,这样就算某个依赖服务出现延迟过高的情况,也只是对该依赖服务的调用产生影响(超时后直接返回;线程池到达maxSize后,进行熔断), 而不会拖慢其他的依赖服务(独立线程池与Tomcat的线程池不一样)。
  • 服务监控:在服务发生调用时,会将一些指标(每秒请求数、成功请求数等)指标记录下来。

声明式服务调用

Feign

简化微服务之间的调用

网关

第一代是zuul,第二代是gateway

作用是拦截请求做路由转发、权限校验、限流控制等功能。

这篇关于spring cloud各个组件的主要功能(面试用)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!