1、SpringCloud的相关组件有哪些?
1)Nacos:注册中心、配置中心
2)OpenFeign:远程调用
3)LoadBalancer:负载均衡
4)Gateway:网关,用来做路由和鉴权(网关的底层是过滤器)
5)Sentinel:服务保护,限流、线程隔离(限制并发数)、降级(将某些业务功能屏蔽掉)和熔断
6)Seata:分布式事务,涉及到多个数据源
XA:执行SQL后事务先不提交,最后由TC统一提交或回滚。
AT:执行SQL后提交事务,并记录数据改变之前和改变之后的数据放到undo log表中。
开启分布式事务:globletranscational
springcloud版本:2021年的,对应springboot版本:2.7.x
2、OpenFeign工作原理
Feign是SpringCloud技术栈中用于远程调用的一个HTTP客户端,主要作用是将远程服务调用格式和本地方法调用格式统一成一致的。
工作步骤:
1)在启动类上添加@EnableFeignClients注解开启对Feign的支持。
2)创建一个Feign的interface接口,接口上加@FeignClient注解,注解中value值是需要调用微服务的名字。例:@FeignClient(value = "cart-service")
3)在接口中创建方法,方法要和调用的方法四要素保持一致。请求参数、返回类型保持一致。
四要素:请求参数,请求路径,请求方式,响应参数。
OpenFeign怎么获取四要素的?
在接口中定义的方法和被调用方法四要素保持一致,Openfeign会从Nacos中获取被调用的服务地址。
3、什么是Sentinel(它能做什么)
Sentinel是SpringCloudAlibaba下的一个用来做服务保护的组件。他有限流、线程隔离、降级和熔断等方法。
熔断原理:
熔断机制基于三种状态:Closed 关闭、Open 打开、 Half-Open 半开。系统正常运行时,熔断器为close状态,当异常请求或慢调用比例达到失败阈值,熔断器进入open状态,直接拒绝所有请求。当熔断时间结束后,熔断器进入half-open状态,并尝试放行一次请求,如果请求成功,熔断器恢复close状态,如果失败,则继续进入open状态。
4、LoadBalancer的负载均衡策略有哪些?
1)轮询:按顺序依次访问服务(默认方式)。
2)随机:随机选择一个服务。
3)权重:根据每个服务的响应时间分配一个权重,响应时间越长,权重越小,被选中的概率也就越低。他的原理是:刚开始使用轮询策略并开启一个计时器,每一段时间收集一次所有服务提供者的平均响应时间,然后再给每个服务提供者附上一个权重,权重越高被选中的概率越大。
5、Nacos作为注册中心工作原理
Nacos是SpringCloudAlibaba技术栈的一项技术,在项目中主要用作服务注册中心和服务配置中心,Nacos做服务注册中心主要具备以下能力:
1)服务注册:服务提供者将自己的地址信息注册到Naocs中,在Nacos中形成一张服务清单。
2)服务发现:服务消费者从Naocs中查询服务提供者的信息,并缓存到本地,每隔5秒刷新一次。当服务提供者的地址发生变化后,Nacos也会主动推送最新的地址给消费者。
3)服务续约:服务提供者会每隔一段时间就给Nacos发送心跳,表明自己在线。
4)服务剔除:当Nacos一段时间内没有接收到服务提供者的续约请求或者接收到下线请求时,就会将其服务地址从服务清单删除。

744

被折叠的 条评论
为什么被折叠?



