01-微服务介绍
沟槽的面试,这里面我会的仅有漏桶算法和令牌桶算法
恶心死我算了
02-Spring Cloud-常见组件
Q:Spring Cloud五大组件有哪些?(注意:这tm是基础内容考察,也算是送分题!)
SpringCloudAlibaba在国内兴起
03-SpringCloud注册中心-Eureka
Q:服务注册和发现是什么意思?SpringCloud如何实现服务注册发现?‘
Eureka工作示意图如下:
服务注册主要体现在:服务提供者需要把自己的数据注册到注册中心去。
注册中心的健康监控
Q:假设服务提供者某一个服务器宕机了怎么办?
A:服务提供者的每个微服务,定期向注册中心发送心跳。
如果注册中心一段时间没有收到微服务的心跳,则将其移出注册中心。
Eureka的三个作用
又来了Nacos
Nacos与Eureka的相同和不同
04-SpringCloud-ribbon负载均衡
08-分布式系统理论-CAP和BASE
CAP定理
有三个指标 C A P,但不能同时被满足
C Consistency一致性:访问任意节点,得到的数据一致。
A Availability可用性:访问任意节点,必须得到响应。
P Partition分区:因为网络故障等导致分布式系统中部分节点失去连接,形成独立分区。
Tolerance 容错:在集群出现分区时,整个系统也要持续对外提供服务。
P必然存在(分布式系统节点之间肯定需要网络连接的,分区必然存在)
C和A存在冲突
CP->一致性+分区 保证访问数据的强一致性
AP->可用性+分区 保证访问数据的高可用性
BASE理论
它是对CAP定理的一种解决思路
Basically Available基本可用:出现故障时,保证核心可用。
Soft State软状态:允许一定时间内出现临时不一致。
Eventually Consistent最终一致性:无法保证强一致性,但是软状态结束后,保证数据一致。
09-业务问题-分布式事物解决方案
Seata
(说实话不用它们的话对它们的理解能有多深呢?
TC——负责维护全局事务的状态,提交或回滚
TM——全局事务
RM——分支事务
第一个模式XA——类CP
第二个模式AT——弥补XA模式资源锁定周期过长的缺陷(AP)
这边是根据undolog进行“回滚”
资源不会被长时间锁定
第三个模式TCC——类ap模式
Try Confirm Cancel
Try——比如说转账尝试是否成功,然后预留这部分资源
Try Confirm Cancel需要用代码手动维护
MQ分布式事务
互联网业务
10-业务问题-分布式服务接口的幂等性
幂等:多次调用和单次调用的结果一致
业务场景:
1、用户重新点击
2、MQ消息重复
3、应用使用失败、超时重试机制(只能成功一次)
如何解决POST的幂等问题呢?
1、需要存在唯一索引
2、token + redis(性能较好)
3、分布式锁
Redisson.getLock()
11-业务问题-分布式任务调度
Xxl-job
它是一个分布式任务调度平台
1、xxl-job路由策略
(负载均衡?
2、xxl-job任务执行失败怎么解决?
路由策略(故障转移)+ 失败重试,查看日志分析——邮件告警
3、大数据量任务同时执行,怎么解决?
路由策略(分片广播)
把一个任务分到所有的执行器中去执行。