面试考点
1.讲讲常见的分布式一致性算法原理
这类问题建议拿Raft算法来讲解,主要原因是Raft比较简单,不像Paxos这样拖泥带水一不小心把自己带到坑里了。这里同学们可以参考前面课程的内容,从Raft的节点角色定义(三个角色)出发,再讲到选举流程。如果中途面试官没有其他问题,可以自己加戏,稍微延伸一下Gossip算法,以及这个算法不能很好的解决拜占庭将军的问题,再稍微讲下什么是拜占庭将军问题。
2.如何解决脑裂现象
原题送分题,参照前一节视屏,先用最短的时间简单描述下脑裂现象,然后可以从Zookeeper的例子出发讲解如何处理脑裂现象,但是ZK有其弊端,那就是为了保证强一致性,在选举期将处于不可用的状态。到这里再谈一谈如何通过Lease机制解决脑裂问题
课程作业
这一节内容不多,作业就布置的轻松一点,既然同学们已经学习了Raft算法,那么不妨去了解一下Paxos算法的内容,看能否借助Raft的知识点帮助理解这个更难的算法。然后再去了解下,现在常用的中间件在分布式环境中应用的一致性同步算法是什么(比如Redis,ZK,RabbitMQ等)
课程小结
这一章主要和同学们讲了分布式环境背后的故事,那就是一致性算法。咱平时经常挂在嘴边的所谓“分布式环境”,其实并不是指应用部署的机器多,那叫一拥而上打群架,真正的分布式是一个集群作战,如何在一个集团军内保证消息传递的一致性,是制胜的关键。这背后的逻辑就是分布式一致性算法