文章目录

  • 微服务框架
  • 微服务面试篇
  • 54 微服务篇
  • 54.1 SpringCloud常见组件有哪些?


54 微服务篇

54.1 SpringCloud常见组件有哪些?

问题说明:这个题目主要考察对SpringCloud的组件基本了解

难易程度:简单

参考话术

【脑子里面 要有一幅图:很多微服务放一块儿】

微服务有哪些组件 微服务常用组件有哪些_spring cloud

SpringCloud包含的组件很多,有很多功能是重复的。其中最常用组件包括:

  • 注册中心组件:Eureka、Nacos等
  • Eureka:服务发现【注册中心】

作用:实现服务治理【服务注册与发现】

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

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

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

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

           在应用启动时,Eureka客户端向服务端注册自己的服务信息,同时将服务端的服务信息缓存到本地。客户端会和服务端周期性的进行心跳交互,以更新服务租约和服务信息。
  • Nacos:Nacos是阿里巴巴的产品,现在是SpringCloud中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。
  • 负载均衡组件:Ribbon
  • Ribbon【客服端 负载均衡】

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

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

  • 远程调用组件:OpenFeign【服务之间实现远程调用】
  • OpenFeign
    Feign是一个声明式的http客户端

其作用就是帮助我们优雅的实现http请求的发送.

  • 网关组件:Zuul、Gateway
    网关功能:
  • 身份认证和权限校验
  • 服务路由、负载均衡
  • 请求限流【对微服务的保护措施】
  • Zuul【服务网关】

作用:api 网关,路由,负载均衡等多种作用

简介:类似nginx,反向代理的功能,不过netflix自己增加了一些配合其他组件的特性。

在微服务架构中,后端服务往往不直接开放给调用端,而是通过一个API网关根据请求的url,路由到相应的服务。当添加API网关后,在第三方调用端和服务提供方之间就创建了一面墙,这面墙直接与调用方通信进行权限控制,后将请求均衡分发给后台服务端。

  • Gateway
    在SpringCloud中网关的实现包括两种:
  • gateway
  • zuul

Zuul是基于Servlet的实现,属于阻塞式编程。而SpringCloudGateway则是基于Spring5中提供的WebFlux,属于响应式编程的实现,具备更好的性能。

  • 服务保护组件:Hystrix、Sentinel
  • Hystrix【断路器】

作用:断路器,保护系统,控制故障范围

简介:为了保证其高可用,单个服务通常会集群部署。由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就会出现线程阻塞,此时若有大量的请求涌入,Servlet容器的线程资源会被消耗完毕,导致服务瘫痪。服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。

  • Sentinel
    为了避免业务请求真的来了很多,引入Sentinel

Sentinel 可以按照这个服务可以承受的频率,去释放请求【预防雪崩,而前面三种是已经出现故障 了,如何避免故障传递】

  • 服务配置管理组件:SpringCloudConfig、Nacos
  • SpringCloudConfig

作用:配置管理

简介:SpringCloud Config提供服务器端和客户端。服务器存储后端的默认实现使用git,因此它轻松支持标签版本的配置环境,以及可以访问用于管理内容的各种工具。这是静态的,动态的需要配合Spring Cloud Bus实现动态的配置更新。

  • Nacos