我试图解释监督树.
我最好的尝试是:
好的,你从工厂拿到一个巧克力盒,保修,"每一点都会很好吃." 然后,如果你发现有一点味道好笑.你可以扔掉整个盒子.因为你从工厂得到一个新的.这就像二郎的监督树.如果一个线程行为不端.存在所有线程都处于不良状态的风险.如果是这种情况,主管会抛弃所有线程并重新开始.就像巧克力盒一样,当你扔盒子时,你就是主管.
你有做事的进程 - 工作进程.可能有许多工人一个的类型 -都是一样的-但也可能有许多类型的工人.
您可以通过编写工作进程类型并部署它们来构建应用程序.
监督工作进程是主管处理器 - 监督主管流程是主管流程(乌龟一路向上,除了最高级的爸爸!)
所有主管都是一样的.他们只有两份工作:
寻找他们的工人(如果他们开始崩溃重启他们的方式需要重新启动那种类型的工人)
如果太多的工人崩溃太频繁地向他们的主管报告线路(通过崩溃并让他们的主管以他们需要重新启动的方式重新启动它们)
而已.您可以使用您设计的特殊类型的工作进程构建小型子系统,并将它们组合成大型多服务器集群,使用与其他人相同的几乎无错误,经过全面测试的监控程序以及一些在其上运行的标准工作程序.监督树做一些事情,比如将子系统从一台机器移动到另一台机器(这些标准工作者被编入OTP应用程序和OTP gen_servers等行为中.