Ending
Tip:由于文章篇幅有限制,下面还有20个关于MySQL的问题,我都复盘整理成一份pdf文档了,后面的内容我就把剩下的问题的目录展示给大家看一下
如果觉得有帮助不妨【转发+点赞+关注】支持我,后续会为大家带来更多的技术类文章以及学习类文章!(阿里对MySQL底层实现以及索引实现问的很多)
吃透后这份pdf,你同样可以跟面试官侃侃而谈MySQL。其实像阿里p7岗位的需求也没那么难(但也不简单),扎实的Java基础+无短板知识面+对某几个开源技术有深度学习+阅读过源码+算法刷题,这一套下来p7岗差不多没什么问题,还是希望大家都能拿到高薪offer吧。
4.1.1 分布式系统中一致性协议有哪些
Raft 到底是什么问题:分布式一致性算法
分布式系统一致性算法 应用于系统软件实现集群保持每个节点数据的同步性
保持我们集群中每个节点数据一致性问题,专业术语分布式一致性的。
场景:
-
Redis集群
-
Nacos集群
-
MangoDB集群
分布式事务一致性算法 与 分布式系统一致性算法有哪些
前者框架:核心解决我们实际系统产生的跨事务导致的分布式事务问题。
核心靠最终一致性:rocketmaq事务消息、rabbitmq补单、lcn、seata等。
后者框架:解决系统之间集群之后每个节点保证数据一致性
raft(nacos)、zab(zookeeper)、paxos等
整个集群为保证数据一致性问题,必须满足大多数情况 > n /2+1,可运行的接地那才可以使用
4.1.2 ZAB 协议与 Paxos 协议类型的区别
ZAB 协议实现原理
ZAB 协议实现原理是通过比较 myidmyid 谁最大谁谁就可能成为领导角色,只要满足过半机制即可成为领导角色,后来启动的节点也不会参与成为领导角色
数据一致性
4.2.1 在 Raft 协议算法中分为角色 | 名词
-
状态:分为跟随者、竞选者(候选人)、领导角色
-
大多数: > n/2+1(n 集群的总结点)
-
任期:每次选举一个新的领导角色 任期都会实现增加
注意:任何算法都来源生活
- 经选择谁的票数最多,谁就是为领导角色。
存在的疑问:
多个竞选者:产生的票数都完全一样,这样谁才能成为领导角色
4.2.2 选举的过程是如何?
-
默认的情况下每个节点都是为跟随者
-
每个节点会随机的生成一个选举的超时时间,例如大概是 100 - 300ms,在这个超时的时间范围内必须要等待
-
超时时间过后,当前节点的状态可能由跟随者 变为 竞选者状态,会给其他的节点发出选举投票通知,只要该经选择超过半数以上即可进选
核心设计的原理:谁超时时间最短大概率的为领导角色
那么随机性树有可能出现一样的情况下:
-
如果所有的节点的超时随机数都是一样的情况下,当投票全部作废,重新进入随机生成超时时间
-
如果有多个节点生成的随机都是一样的,比较谁的票数最多,谁就是为领导,如果票数完全一样的情况下,直接作废,重新进入随机生成的超时时间,建议集群节点为奇数
4.2.3 分布式一致性算法 Raft 协议
故障重新实现选举.
如果我们跟随者节点不能及时的收到领导角色的消息的,那么这时候跟随者状态就会变
为竞选者状态,发给其他的节点发出选举投票通知,只要该竞选者有超过半数以上即可
选举为领导角色
数据如何保证一致性 类似 zab 两阶段提交协议
最后
即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!
我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!
一共有20个知识点专题,分别是:
Dubbo面试专题
JVM面试专题
Java并发面试专题
Kafka面试专题
MongDB面试专题
MyBatis面试专题
MySQL面试专题
Netty面试专题
RabbitMQ面试专题
Redis面试专题
Spring Cloud面试专题
SpringBoot面试专题
zookeeper面试专题
常见面试算法题汇总专题
计算机网络基础专题
设计模式专题
1715583460616)]