36、分布式事务:如何理解两阶段提交你好,我是微扰君。 今天我们来聊一个经典问题“分布式事务”,以及它的常见解决方案“两阶段提交”。 关于事务,我们之前在介绍日志型文件系统的时候就已经一起学习过了(戳[这里]复习),主要特点就是需要保证在应用程序中,一系列连续操作要么全部成功执行,要么...2025-12-08
35、洗牌算法:随机的哲学,如何用程序来洗一副牌你好,我是微扰君。 专栏正文已经结束了,在过去一段时间里我们一起学的知识,不知道你掌握得怎么样了呢?如果还意犹未尽的话,从今天开始我们会陆陆续续聊一些其他话题,作为特别番外,希望你可以和我一起继续享受其中的思维乐趣。 今天就先从一个颇有趣味的“洗牌算...2025-12-08
34、前缀树:Web框架中如何实现路由匹配你好,我是微扰君。 不知不觉,已经到工程实战篇的最后一讲了,在这个章节中,我们一起学习了很多工程中常用的算法,如果你从事后端开发,应该或多或少有些接触,比如在Redis、Kafka、ZooKeeper等常用中间件里就经常出现,理解它们的核心思想,能给...2025-12-08
33、限流算法:如何防止系统过载你好,我是微扰君。 上一讲我们学习了业务场景中频繁会使用到的延时队列,能帮助处理很多业务上的定时任务问题,因为这个组件的功能和具体业务往往没有关系,我们通常会利用各种中间件来实现延时队列的能力。 今天我们来探讨另外一个算法的原理和实现,它也和业务本身...2025-12-08
32、时间轮:Kafka是如何实现定时任务的你好,我是微扰君。 今天我们来聊一聊日常开发中非常常见的技术需求:延时队列。 之前在学Kafka二分搜索的时候,我们已经学过了消息队列,它是一个用于传递消息的组件,大部分场景下,我们都希望消息尽快送达,并且消息之间要严格遵循先进先出的约束。但在有一些...2025-12-08