@babydragon
2017-06-15T21:39:44.000000Z
字数 1288
阅读 1458
架构
分布式系统工程师、《RabbitMQ实战》合著者Alvaro Videla在2017伦敦QCon上回顾了分布式系统理论。主题涵盖将分布式系统从不同维度进行分类,例如时间模型、故障模式。并讨论这些类别的选型考虑因素。
分布式系统工程师、《RabbitMQ实战》合著者Alvaro Videla在2017伦敦QCon上回顾了分布式系统理论。主题涵盖将分布式系统从不同维度进行分类,例如时间模型、故障模式。并讨论这些类别的选型考虑因素。
Videla首先介绍了几种时间模型,它们的区别主要在于分布式系统每步处理时间是否已知。他列举了三类(注意不要和并行编程中的相关概念混淆):
Videla还阐述了进程间通信的方式。一般系统要么选择消息传递机制,要么选择共享内存方式。
Videla最后提到的分类方式是故障模式,它是按照进程故障类型进行分类的,包括:
Videla强调,在这些模式和类型中间选择时没有银弹。最终的选型一定是基于系统需求权衡的结果。
还有一点值得注意的是,上述一些选项无法反映真实系统,但是它们在分布式系统理论中还是有用的。这是因为它们相对简单,可以用于验证基于这些简单场景的新算法。这些算法如果在简单模型下适用,它们也可能适用于更加复杂的场景。
除此之外,Videla还介绍了故障检测,这是一种用于检测其他进程是否正常的算法。设计这些算法的主要难点在于区分故障进程和长耗时进程。对此Videla介绍了名为“最终完美故障检测器(Eventually Perfect Failure Detector)”,它基于超时进行扩展,将超过一定时限的进程标记为嫌疑进程。这意味着,如果被标记为有故障嫌疑的进程,后面被发现仍然存活,将会从嫌疑列表中移除。
完整视频可以在线观看,同时Videla也以此主题写了一篇文章。文章介绍了仲裁(quorum)和一致性等额外的概念,同时也给出了后续阅读的建议。
查看英文原文:https://www.infoq.com/news/2017/06/distributed-systems-theory