知识卡片
心跳检测隔离不可靠组件
内容
面对一个名声不佳、容易崩溃的第三方组件,与其花精力改善它的可靠性(往往做不到,没有源码),不如设计架构去隔离和消化它的不可靠——放进独立进程运行(错误隔离),监听状态更新做心跳检测,消息中断就判定崩溃、终止旧进程快速重启。这正是”提升架构的设计”:原型显示检测到崩溃后1秒内即可重启并从原位置继续播放,可靠性风险不需要修好那个组件本身就能解决。
参考来源
- 位置:《恰如其分的软件架构》第4章《实例:家庭媒体播放器》4.2.1节《集成新组件》(源文件:_epub-src/OEBPS/text00044.html)
- 结论依据:原文描述通过监听NextGenVideo组件的状态更新、无消息即判定崩溃、终止旧进程重启新实例的心跳检测机制,并说明这依赖于"每个顶层组件运行在自己进程中"这一专注架构设计决策,1秒内即可恢复播放。
- 原始内容:我们决定观察来自NextGenVideo组件的状态更新,若无法接收消息,则视为崩溃或中止……我们发现一旦检测到它崩溃,就可以在1 s之内迅速重启,并从同一个地方重新播放……这是专注架构设计的一个例子。