写点什么

应用工程师的分布式系统理论

2017 年 6 月 25 日

分布式系统工程师、《RabbitMQ 实战》合著者 Alvaro Videla 在 2017 伦敦 QCon 上回顾了分布式系统理论。主题涵盖将分布式系统从不同维度进行分类,例如时间模型、故障模式。并讨论这些类别的选型考虑因素。

Videla 首先介绍了几种时间模型,它们的区别主要在于分布式系统每步处理时间是否已知。他列举了三类(注意不要和并行编程中的相关概念混淆):

  • 同步:该类分布式系统已知其每一步的耗时。虽然这能够在诸如故障检测上有所帮助,但是真实系统不可能做到。
  • 异步:该类分布式系统每一步执行都无序,且无法保证执行耗时。这更符合真实的系统,但是真实系统一般都会引入超时机制。
  • 半同步:该类分布式系统每一步执行至少能够提供一些耗时信息,因此可以为其设置阈值。

Videla 还阐述了进程间通信的方式。一般系统要么选择消息传递机制,要么选择共享内存方式。

Videla 最后提到的分类方式是故障模式,它是按照进程故障类型进行分类的,包括:

  • 崩溃后停止:当一个进程崩溃后,再也无法恢复。这不能反应真实场景,一般当一台机器故障时,它不会被处置,而是被重新利用。
  • 崩溃后恢复:当一个进程崩溃后,可以通过一系列恢复算法进行恢复。例如通过从数据库重新读取,或是和其他进程进行交互。
  • 忽略故障:当进程无法接收或者发送消息的时候,直接忽略它。对此 Videla 给的例子是缓存模块,当发生可以接收消息,但是无法发送响应消息的场景。此时对于客户端来说,缓存模块仍然是有效的,因为它仍然保存着最新的数据。
  • 任意失效模式:此模式下,一旦进程开始发送或者接收不正确的消息,这些消息的计算结果应该能够反映系统处于失效的状态。

Videla 强调,在这些模式和类型中间选择时没有银弹。最终的选型一定是基于系统需求权衡的结果。

还有一点值得注意的是,上述一些选项无法反映真实系统,但是它们在分布式系统理论中还是有用的。这是因为它们相对简单,可以用于验证基于这些简单场景的新算法。这些算法如果在简单模型下适用,它们也可能适用于更加复杂的场景。

除此之外,Videla 还介绍了故障检测,这是一种用于检测其他进程是否正常的算法。设计这些算法的主要难点在于区分故障进程和长耗时进程。对此 Videla 介绍了名为“最终完美故障检测器(Eventually Perfect Failure Detector)”,它基于超时进行扩展,将超过一定时限的进程标记为嫌疑进程。这意味着,如果被标记为有故障嫌疑的进程,后面被发现仍然存活,将会从嫌疑列表中移除。

完整视频可以在线观看,同时 Videla 也以此主题写了一篇文章。文章介绍了仲裁(quorum)和一致性等额外的概念,同时也给出了后续阅读的建议。

查看英文原文

Distributed Systems Theory for Practical Engineers

2017 年 6 月 25 日 19:001354

评论

发布
暂无评论
发现更多内容

不要再用面向对象语言编写面向过程的代码了

鸠摩智

架构师训练营-第二周 - 总结

lei Shi

架构师训练营作业 (第二周)

小遵

架构学习第二周作业

云峰

第二周总结

Linuxer

极客大学架构师训练营

架构师训练营 - 第二周 - 命题作业

Anrika

架构师 极客大学架构师训练营

架构师训练营第二周感悟

路人

架构师系列之面向对象即设计原则

彭阿三

架构

依赖倒置和接口隔离

allen

OOD四大原则

金桔🍊

架构师训练营 - 第二周 - 学习总结

Anrika

架构师 极客大学架构师训练营

接口隔离原则设计缓存Cache工具类

王鹏飞

依赖倒置(DIP)

Lane

极客大学架构师训练营

week2 总结

雪涛公子

依赖倒置原则

Young

第二周作业:设计原则

Larry

依赖倒置原则 & 类图优化

lei Shi

架构师训练营 第二周 学习总结

极客

架构师训练营 - 学习总结 - 第二讲

吕浩

第二周学习总结

CP

【架构训练营】第二期

云064

架构师训练营第 02 周——总结

李伟

极客大学架构师训练营

第二周总结

Young

最初的梦想

小天同学

写作 成长 梦想

实现自己架构的主要手段

重新来过

第二周作业

CP

Week02 作业

极客大学架构师训练营

week2作业

雪涛公子

数据库大咖讲坛活动6月18日墨天轮平台线上举行,阿里腾讯达梦众多数据库大咖齐聚!

墨天轮

数据库 腾讯云 阿里云 数据库设计

架构师训练营第 0 期 - 第 2 周 - 学习总结

极客大学架构师训练营

架构师训练营——设计模式篇_作业

独孤魂

作业

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

应用工程师的分布式系统理论-InfoQ