24、构建细粒度监督树:实现系统错误隔离与恢复

构建细粒度监督树:实现系统错误隔离与恢复

在系统运行过程中,错误的发生难以避免。如何将错误的影响限制在系统的小部分区域,使系统能够始终提供大部分服务,是我们需要解决的重要问题。本文将详细介绍通过构建细粒度监督树来实现错误隔离和最小化负面影响的方法。

1. 监督树概述

要减少错误对整个系统的影响,基本工具包括进程、链接和监督者。我们需要时刻考虑当某个进程因错误崩溃时,系统其他部分会受到怎样的影响,并在错误影响范围过大时采取纠正措施。

2. 分离松散依赖部分

在待办事项系统中,进程之间的链接导致错误传播范围过大。例如,无论哪个进程崩溃,退出信号都会传播到其链接的进程,最终导致待办事项缓存进程崩溃,整个系统重启。这种粗粒度的错误恢复方式是因为从其他工作进程内部启动工作进程。

为了减少错误影响,我们需要让监督者直接启动各个工作进程,这样监督者就能单独监督和重启每个工作进程。具体操作步骤如下:
1. 移动数据库服务器 :将数据库服务器直接从监督者启动,隔离数据库错误和缓存中的错误。
- 从 Todo.Cache.init/1 中移除对 Todo.Database.start_link 的调用。
- 在调用 Supervisor.start_link/2 时添加另一个子规范。示例代码如下:

defmodule Todo.System do 
  def start_link do 
    Supervisor.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值