知识卡片
心跳超时是判定对方组件已失效的通用手段
内容
一个组件坏了光靠自己报告不够——若彻底死机根本没机会报告;其他组件必须能主动判断对方是否还活着。Tandem让每个CPU定期在总线上广播心跳信息,连续两次没收到就认定其出故障并接管资源。这种约定心跳周期、超时判定失联的模式,后来在几乎所有分布式系统的故障检测机制里都能看到影子。
参考来源
- 位置:《架构之美》第8章《Guardian:一个容错操作系统环境》8.2.1节《诊断》(源文件:程序之美系列套装(6册)团队之美、项目管理之美、架构之美、数据之美、测试之美、安全之美/_epub-src/OEBPS/Text/part0171.xhtml)
- 结论依据:原文明确"这里的解决方案是Watchdog。每个CPU每隔1.2秒在双方的总线上广播一个信息,即所谓的'我还活着'的信息。如果一个CPU连续两次没有收到另一个CPU的'我还活着'的信息,它会假定那个CPU出故障了"。
- 原始内容:这里的解决方案是Watchdog。每个CPU每隔1.2秒在双方的总线上广播一个信息,即所谓的"我还活着"的信息。如果一个CPU连续两次没有收到另一个CPU的"我还活着"的信息,它会假定那个CPU出故障了。