19、基于Raft的分布式KV系统开发实战(一):如何设计架构?你好,我是韩健。 学完前面2讲之后,相信你已经大致了解了Raft算法的代码实现(Hashcorp Raft),也掌握了常用API接口的用法,对Raft算法的理解也更深刻了。那么,是不是掌握这些,就能得心应手的处理实际场景的问题了呢? 在我看来,掌握的...2025-11-03分布式协议与算法实战
21、加餐 | 拜占庭将军问题:如何基于签名消息实现作战计划的一致性?你好,我是韩健。 在[01讲]中,为了不啰嗦,让你举一反三地学习,我对签名消息型拜占庭问题之解,没有详细展开,而是聚焦在最核心的点“签名约束了叛徒的作恶行为”,但从留言来看,很多同学在理解签名和如何实现作战一致性上,还是遇到了问题。比如不理解如何实现...2025-11-03分布式协议与算法实战
20、基于Raft的分布式KV系统开发实战(二):如何实现代码?你好,我是韩健。 学完[上一讲]后,相信你已经了解了分布式KV系统的架构设计,同时应该也很好奇,架构背后的细节代码是怎么实现的呢? 别着急,今天这节课,我会带你弄明白这个问题。我会具体讲解分布式KV系统核心功能点的实现细节。比如,如何实现读操作对应的...2025-11-03分布式协议与算法实战
22、加餐 | MySQL XA是如何实现分布式事务的?你好,我是韩健。 相信很多同学都知道MySQL支持单机事务,那么在分布式系统中,涉及多个节点,MySQL又是怎么实现分布式事务的呢? 这个和我最近遇到的问题很类似,我现在负责的一个业务系统,需要接收来自外部的指令,然后访问多个内部其他系统来执行指令,...2025-11-03分布式协议与算法实战
23、加餐 | PBFT算法:如何替换作恶的领导者?你好,我是韩健。 上一讲,我们了解到,PBFT可以防止备份节点作恶,因为这个算法是主节点和备份节点组成的,那你想象一下,如果主节点作恶(比如主节点接收到了客户端的请求,但就是默不作声,不执行三阶段协议),这时无论正常节点数有多少,备份节点肯定没办法达...2025-11-03分布式协议与算法实战
24、加餐 | TCC如何实现指令执行的原子性?你好,我是韩健。 在上一讲我提到,虽然MySQL XA能实现数据层的分布式事务,解决多个MySQL操作的事务问题,但我现在负责的这套业务系统还面临别的问题:在接收到外部的指令后,我需要访问多个内部系统,执行指令约定的操作,而且,还必须保证指令执行的原...2025-11-03分布式协议与算法实战
25、加餐 | ZAB协议(一):主节点崩溃了,怎么办?你好,我是韩健。 咱们都知道,系统在运行中,不可避免会出现各种各样的问题,比如进程崩溃了、服务器死机了,这些问题会导致很严重的后果,让系统没办法运行。学完了15讲后,你应该还记得,在ZAB中,写请求是必须在主节点上处理的,而且提案的广播和提交,也是由...2025-11-03分布式协议与算法实战
26、加餐 | ZAB协议(二):如何从故障中恢复?你好,我是韩健。 我们上一讲提到了ZAB的领导者选举,在我看来,它只是选举了一个适合当领导者的节点,然后把这个节点的状态设置成LEADING状态。此时,这个节点还不能作为主节点处理写请求,也不能使用领导职能(比如,它没办法阻止其他“领导者”广播提案)...2025-11-03分布式协议与算法实战
27、加餐 | ZAB协议(三):如何处理读写请求?你好,我是韩健! 你应该有这样的体会,如果你想了解一个网络服务,执行的第一个功能肯定是写操作,然后才执行读操作。比如,你要了解ZooKeeper,那么肯定会在zkCli.sh命令行中执行写操作(比如“create /geekbang 123...2025-11-03分布式协议与算法实战
28、结束语 | 静下心来,享受技术的乐趣你好,我是韩健。 一晃几个月的时间就过去了,这段日子里,我们一起在课程里沟通交流,与我而言,这是一段很特别的经历。我看到很多同学凌晨还在学习、留言,留言区里经常会看到熟悉的身影,比如约书亚、唔多志、每天晒白牙、小晏子,很感谢你们一直保持着学习的热情。...2025-11-03分布式协议与算法实战