写点什么

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

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