1、常用SpringCloud的组件?
1)、Nacos 注册中心和配置中心
2)、OpenFeign 远程调用
3)、LoadBalancer 负载均衡的 Ribbon(2021之前的版本)
4)、Gateway 网关
5)、Sentinel 服务保护
限流 现成隔离 熔断 降级方法(需要写代码)
6)、Seata 分布式事务(涉及到多个数据源)
XA : 执行SQL后事务不提交,统一提交或回滚
AT : 执行SQL后事务提交,并记录数据改变之前和之后的数据放到undo_log表中
2、OpenFeign工作原理
Feign是SpringCloud技术栈中用于远程调用的一个HTTP客户端,主要作用是将远程服务调用格式本地方法调用格式统一成一致的
Feign的工作步骤如下:
1)、首先需要在SpringBoot的启动类上添加@EnableFeignClients 注解开启对Feign的支持
2)、创建一个Feign的Interface接口,接口上需要添加一个@FeignClient的注解,注解中value值是需要调用的微服务的名字
3)、在接口中创建方法,创建的方法要和即将调用的方法 请求路径、请求方式
请求参数、返回类型保持一致
3、什么是Sentinel(他能做什么)
他是SpringCloudAlibaba下的一个用来做服务保护的组件
限流、线程隔离、熔断、还可以支持降级方法
有三个状态
4、LoadBalancer的负载均衡策略有哪些
官方提供了好几种负载均衡策略
轮询策略:按照一定的顺序依次调用服务实例
权重策略:根据每个服务提供者的响应时间分配一个权重,响应时间越长,权重越小,被选中的可能性也就越低。它的实现原理是,刚开始使用轮询策略并开启一个计时器,每一段时间收集一次所有服务提供者的平均响应时间,然后再给每个服务提供者附上一个权重,权重越高被选中的概率也越大。
随机策略:从服务提供者的列表中随机选择一个服务实例
5、Nacos作为注册中心工作原理
Nacos是SpringCloudAlibaba技术栈的一项技术,在项目中主要用作服务注册中心和服务配置中心
Nacos做服务注册中心主要具备下面这些能力
服务注册:服务提供者会将自己的地址信息注册到Nacos中,在nacos中形成一张服务清单
服务发现:服务消费者会从Nacos中查询服务提供者的信息,并且缓存到本地,并且每隔30s更新一次
当服务提供者的地址发生变化之后,Nacos也会主动推送最新的地址信息给消费者
服务续约:服务提供者会间隔一定时间就给Nacos发送心跳,表明自己在线服务剔除:当nacos一段时间内接收不到服务微服务的续约请求时或者收到微服务的下线请求时,就会将服务地址从服务清单中删除