我试图解释监督树。
我最好的尝试是:
好的,你从工厂得到一个巧克力盒,有保修,
“每一口都会很好吃。”
然后,如果你发现那一点味道很有趣。你可以扔掉整个盒子
离开。因为你从工厂得到了一个新的。
这就像 Erlang 中的监督树。如果一个线程行为不端。存在所有线程都处于不良状态的风险。
如果是这种情况,主管会丢弃所有线程并重新开始。
就像巧克力盒一样,你扔盒子的时候就是监督者。
最佳答案
你有做事的进程 - 工作进程 。 类型 的 worker 可能有很多 - 都是一样的 - 但也可能有多种类型的 worker 。
您可以通过编写工作进程类型并部署它们来构建应用程序。
监督 工作进程 是 主管处理器 - 监督 主管进程 是 主管进程 (海龟一直向上,除了最上面的那个是爸爸!)
所有主管都是一样的。他们只有两个工作:
开始崩溃 重新启动它们
这种类型的 worker 需要的方式
重新启动)
向上线报告给他们
主管(通过崩溃和让
他们的主管重新启动他们
他们需要重新启动的方式)
就是这样。您使用您设计的特殊类型的工作进程构建小型子系统,并使用与其他人相同的几乎没有错误、经过全面测试的主管以及一些运行在其上的标准工作人员,将它们组合成大型的多服务器集群监督树执行诸如将子系统从一台机器移动到另一台机器之类的事情(这些标准工作人员被编入诸如 OTP 应用程序和 OTP gen_servers 之类的行为中。
关于erlang - Erlang的监督树怎么解释?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/676266/