深入浅出分布式技术原理
从业务场景出发,带你搭建分布式知识体系
陈现麟  伴鱼技术中台负责人,前小米工程师
专栏
已完结·共 39 讲
|
2.1w 人已学
|
收藏
对于超时机制,我们可以在每一次成功获得锁的时候,为锁设置一个超时时间,获得锁的节点与锁服务保持心跳,锁服务每一次收到心跳,就延长锁的超时时间,这样就可以解决上面的两个问题了
来自:07|分布式锁:所有的分布式锁都是错误的?
5 人划过
我们只需要对用户发起的每一次课程购买的请求,生成一个唯一的 ID ,然后在课程购买的 RPC 请求中带上这个唯一的 ID ,在首次调用和重试的时候,这个唯一的 ID 都保持不变。
来自:08|重试幂等:让程序 Exactly-once 很难吗?
4 人划过
微服务架构更强调数据是服务私有的,其他服务不能直接访问服务的私有数据,只能通过服务提供的接口来获取。
来自:29|分布式计算技术的发展史:从单进程服务到 Service Mesh
3 人划过
动态分片与基于关键词的划分,往往是一个比较好的组合方式,它避免了基于关键词划分的问题,还保留了数据基于关键词有序的优点。
来自:17|分片(一):如何选择最适合的水平分片方式?
3 人划过
以 2PC 为例,协调者在第一阶段通过接收所有参与者对 Prepare 请求的响应,才能最终确定当前的事务是提交还是中止,而这就是典型的共识场景:所有的参与者都同意,就提交事务;如果有参与者不同意,就中止事务。所以,我们认为 2PC 或 3PC 之类的原子提交协议是共识协议
来自:28|一致性与共识(三):共识与事务之间道不明的关系
3 人划过
因此,对于分布式系统工程实践来说, CAP 理论更合适的描述是:在满足分区容错的前提下,没有算法能同时满足数据一致性和服务可用性。
来自:03|CAP 理论:分布式场景下我们真的只能三选二吗?
3 人划过
所以对于单节点来说,我们可以先在内存中将事务的操作完成,然后将处理的结果顺序写入日志文件中,这就避免了事务操作结果随机写入存储的性能问题了。
来自:25|事务(四):持久性,吃一碗粉就付一碗粉的钱
3 人划过
一些实例会在内存中缓存一些状态数据,用于提升系统的性能,如果一个请求被路由到错误的实例中,该实例可以立即通过中心存储,读取出所需要的数据
来自:05|负载均衡:从状态的角度重新思考负载均衡
3 人划过
我们先来看异构工作负载方面的问题。单体服务会包含多种多样的功能模块,有一些是 IO 密集型的模块,比如主要对数据库进行 CRUD 的功能模块;另一些则是计算密集型的模块,比如图片、音频和视频转码相关的功能模块。如果能将 IO 密集型和 CPU 密集型的模块拆分成不同的服务,分开部署到更合适的硬件上,将可以节省大量的机器成本。比如 IO 密集型的模块,我们可以部署在 CPU 性能相对较低的机器上。
来自:04|注册发现: AP 系统和 CP 系统哪个更合适?
3 人划过
它对固定窗口做了进一步切分,将统计周期的粒度切分得更细,比如 1 分钟的固定窗口,切分为 60 个 1 秒的滑动窗口,然后统计的时间范围随着时间的推移同步后移
来自:10 | 雪崩(二):限流,抛弃超过设计容量的请求
3 人划过
*精彩内容为该课程各文章中划线次数最多的内容
免费试读
讲师

陈现麟

伴鱼技术中台负责人,前小米工程师

陈现麟,前小米工程师,主要负责在 IM 协议层、长连接接入层和 Nginx 模块等方面的开发工作。目前为伴鱼技术中台负责人,曾带领团队从 0 到 1 搭建技术中台,并负责数据中台和业务中台。在十多年的工作生涯中,积累了对分布式架构、服务治理、稳定性建设、高并发高 QPS ...查看更多
编辑推荐
看过的人还看了
MySQL 实战 45 讲
林晓斌
网名丁奇,前腾讯云数据库负责人

49讲 | 224934 人已学习

¥68¥199
Redis 核心技术与实战
蒋德钧
中科院计算所副研究员

53讲 | 81740 人已学习

¥68¥199
数据结构与算法之美
王争
前 Google 工程师

81讲 | 283802 人已学习

¥68¥199
左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家

119讲 | 180999 人已学习

¥98¥399
设计模式之美
王争
前 Google 工程师,《数据结构与算法之美》专栏作者

113讲 | 123469 人已学习

¥98¥299
从 0 开始学架构
李运华
网名“华仔”,前阿里资深技术专家(P9)

66讲 | 152618 人已学习

¥68¥199