如何解释 Erlang 的监督树?
Posted
技术标签:
【中文标题】如何解释 Erlang 的监督树?【英文标题】:How to explain Erlang's supervision trees? 【发布时间】:2010-10-15 03:29:24 【问题描述】:我试图解释监督树。
我最好的尝试是:
好的,你从工厂得到一个巧克力盒,有保修, “每一口都会很好吃。” 然后,如果你觉得那一点味道很有趣。你可以扔整个盒子 离开。因为你从工厂得到一个新的。 这就像 Erlang 中的监督树。如果一个线程行为不端。存在所有线程都处于不良状态的风险。 如果是这种情况,主管会丢弃所有线程并重新开始。 就像巧克力盒一样,你是扔盒子的监督者。
【问题讨论】:
【参考方案1】:您有做事的进程 - 工作进程。可能有许多 worker 属于 type - 都是一样的 - 但也可能有许多类型的worker。
您通过编写工作进程类型并部署它们来构建应用程序。
监督 worker 进程 是 supervisor 处理器 - 监督 supervisor 进程 是 supervisor 进程(乌龟所有一路向上,除了最上面的那个是爸爸!)
所有的主管都是一样的。他们只有 2 个工作:
-
注意他们的工人(如果他们
开始崩溃重新启动它们
那种类型的工人需要的方式
重新启动)
如果太多工人经常崩溃
向他们报告
主管(通过崩溃和让
他们的主管在
它们需要重新启动的方式)
就是这样。您从您设计的特殊类型的工作进程构建小型子系统,并使用与其他人一样几乎没有错误、经过全面测试的主管将它们组合成大型的多服务器集群以及一些在监督树上操作的标准工作者,以执行诸如将子系统从一台机器移动到另一台机器之类的事情(这些标准工作者被编入 OTP 应用程序和 OTP gen_servers 等行为。
【讨论】:
【参考方案2】:在my article我是这样描述的:
在某些方面,Erlang 就像真正的 生活:有很多过程 做真正的工作,其中一些是 监督他们。还有一个 等级制度。正如我所说,现实生活。 ****微笑****
本文的其余部分试图深入了解 Erlang 监督树的概念。
mue
【讨论】:
【参考方案3】:针对上述 Mue,链接已更改。现在正确的地址是:http://mue.tideland.biz/software-architecture-with-erlangotp-part-7-s
【讨论】:
以上是关于如何解释 Erlang 的监督树?的主要内容,如果未能解决你的问题,请参考以下文章