Spring cloud alibaba

Spring cloud alibaba

Spring cloud alibaba_第1张图片

1.Nacos有什么功能

  1. 服务发现和注册:Nacos允许服务实例在应用启动时自动注册和发现,使微服务架构中的服务能够轻松地相互发现和通信。
  2. 动态配置管理:Nacos提供了一个集中式的配置管理平台,可以动态管理应用的配置信息。

2.nacos服务注册中心用过吗,注册过什么业务

用过,Nacos服务注册中心可以注册各种类型的业务,例如订单app,商品中心,支付系统,会员中心

3.ribbon是什么

Ribbon是一个用于客户端的负载均衡工具,用于提高系统的可用性和性能

4.ribbon常用的负载均衡算法

随机,轮询,权重,地址Hash,最小连接数

5.ribbon和nginx的区别

ribbon是客户端的负载均衡工具,客户端通过Ribbon选择合适的服务实例进行请求

nginx是一种实现服务器负载均衡的反向代理服务器,通常用于将客户端请求转发到后端服务器集群。

6.openfeign是什么

Spring Cloud OpenFeign是Spring Cloud中的一个组件,它对Feign进行了增强,使其支持Spring MVC注解,另外还整合了Ribbon和Nacos,从而使得Feign的使用更加方便

7.openfeign的调用方式

1.导入依赖

2.在启动类添加@EnableFeignClients 注解

3.编写对应接口并加入spring容器中,添加@FeignClient 注解

4.通过@Autowired 注入并使用

8.feign和openfeign的区别

回答1

Feign是Spring Cloud组件中一个轻量级RESTful的HTTP服务客户端,提供了一种声明式的方式来定义和实现服务的API调用。Feign的使用方式是:使用Feign的注解定义接口,调用接口,就可以调用服务注册中心的服务。

OpenFeign是Spring Cloud在Feign的基础上支持了SpringMVC的注解。OpenFeign的@FeignClient可以解析SpringMVC@RequestMapping注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并且低耦合调用其他服务。

回答2

Feign是一个声明式的HTTP客户端工具,用于简化服务间的HTTP通信。使用Feign的注解定义接口,调用接口,就可以调用服务注册中心的服务

OpenFeign在Feign的基础上进行了增强和扩展,使其支持了SpringMVC的注解。它集成了Spring Cloud的服务发现和负载均衡功能,可以与其他Spring Cloud组件一起使用,实现服务的动态发现和负载均衡

9.openfeign使用什么注解

@EnableFeignClients:调用端在启动类上添加@EnableFeignClients注解

@FeignClient:调用端声明一个调用接口并加上注解,通过该接口可以调用其他服务的api

10.sentinel是什么

Sentinel是阿里开源的一款轻量级流量控制框架,用于保护分布式系统的稳定性。它主要用于解决分布式系统中的流量控制、熔断降级、系统保护等问题

11.sentinel常见的容错机制

  1. 服务限流(流量控制):Sentinel可以根据系统的负载情况设置阈值,到达阈值后不再向后端进行请求,限制请求的并发量或QPS(每秒请求数),防止系统被过载
  2. 服务熔断:熔断就是设置一个阈值,向服务发起请求后,如果不成功,就会记录次数,然后当连续失败次数达到阈值时,下次请求就直接把这个服务停止。请求有三种状态,可以请求(开),不可请求(关),还有一个中间状态,相当于半开状态,半开状态就是可以在关闭状态后一段时间,发一个请求尝试是否可以请求成功,如果不成功,继续保持关闭状态,关闭状态后一段时间,再尝试发一个请求,如果请求成功,则变成开放状态。。
  3. 服务降级:降级是当我们向一个服务发起请求,当请求超时,就把这次请求记录到服务中,然后尝试向其他服务发请求,如果还没成功,就对这次请求进行处理,怎么处理取决于我们的业务逻辑,当然Sentinel底层使用aop来实现的。

12.怎么使用sentinel

  1. 导入相关依赖
  2. 配置切面,用于实现对被 @SentinelResource 注解修饰的方法进行拦截和处理。
  3. 在配置文件里添加流控降级规则
  4. 在需要进行流控的方法上添加@SentinelResource,并配置blockHandler和fallback,blockHandler和fallback必须为静态方法,参数一定要跟保护的方法参数一致

13.sentinel怎么持久化

添加nacos相关依赖

在配置文件中,配置Nacos的相关信息

在Nacos配置管理中创建对应的sentinel配置

在项目中启动时,会自动从Nacos中获取sentinel配置信息,并进行持久化

14.什么是gateway

用于构建微服务架构中的网关服务,网关可以作为系统的唯一流量入口,封装内部系统的架构,所有请求都先经过网关,由网关将请求路由到合适的微服务

15.流量网关和服务网关的区别

流量网关:(如Nignx,OpenRest,Kong,  Envoy)指提供全局性的、与后端业务应用无关的策略,例如 HTTPS证书认证、Web防火墙、全局流量监控,黑白名单等。

服务网关:(如Spring Cloud Gateway)指与业务紧耦合的、提供单个业务域级别的策略,如身份认证,下游接口的耗时,token身份验证,traceId全局链路跟踪等。

流量网关   负责南北向流量调度及安全防护

微服务网关   负责东西向流量调度及服务治理。

16.gateway三大属性

路由:由ID、目标URI、断言集合和过滤器集合组成。如果聚合的断言结果为真,则转发到该路由。

断言:允许开发人员匹配 HTTP 请求中的任何内容,比如请求头或请求参数或请求路径,最后根据匹配结果返回一个布尔值

过滤器:可以在返回请求之前或之后修改请求和响应的内容

17.gateway三大案例组件

1.下游接口的耗时

2.token身份验证

3.traceId全局链路跟踪

traceId全局链路跟踪作用:

它可以帮助开发人员在分布式系统中定位和解决问题,通过追踪和关联整个请求的处理过程

18.gateway过滤器分类

Gateway 过滤器从生命周期可分为

PRE前置过滤器:在请求被路由之前,调用到达网关之前进行的过滤操作。可以用于验证身份、鉴权、记录调试信息等。

POST后置过滤器:在路由到微服务以后执行。这种过滤器可用来为响应添加标准的 HTTP Header、对响应结果进行处理、日志记录、响应头的修改等。

Gateway 过滤器从作用范围可分为

全局过滤器:应用到所有的路由上(无需配置,全局生效)

局部过滤器:应用到单个路由或者一个分组的路由上

19.3PC与2PC的区别

1.增加了一个询问阶段,协调者询问参与者是否能完成请求,参与者如果可以提交就返回Yes响应,否则返回No响应

2.3PC加入了超时机制

20.Seata的原理

由 TC (Transaction Coordinator) - 事务协调者(带头大哥)来维护全局和分支事务的状态,驱动全局事务提交或回滚。TM (Transaction Manager) - 事务管理器 (鸡妈妈)定义全局事务的范围:开始全局事务、提交或回滚全局事务。RM (Resource Manager) - 资源管理器管理分支事务处理的资源,与TC交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

涉及到几张表:

其中,TC 为单独部署的 Server 服务端,TM 和 RM 为嵌入到应用中的 Client 客户端。

21.了解TCC

TCC(Try Confirm Cancel)是应用层的两阶段提交,针对每个操作,都要实现对应的确认和补偿操作,也就是业务逻辑的每个分支都需要实现 try(加锁,锁住资源)、confirm(执行业务,释放锁)、cancel (出问题,释放锁)三个操作

优点:

性能提升:具体业务来实现,控制资源锁的粒度变小,不会锁定整个资源。

数据最终一致性:基于 Confirm 和 Cancel 的幂等性,保证事务最终完成确认或者取消,保证数据的一致性。

可靠性:解决了 XA 协议的协调者单点故障问题,由主业务方发起并控制整个业务活动,业务活动管理器也变成多点,引入集群。

缺点:TCC 的 Try、Confirm 和 Cancel 操作功能要按具体业务来实现,业务耦合度较高,提高了开发成本。

22.saga工作原理

undolog为什么要放在业务库里

undolog存储操作之前的数据,因为短事务由数据库保证数据的原子性,如果不在业务库里则无法保证数据的原子性。

你可能感兴趣的:(springcloud,springcloud)