为什么Erlang / OTP不使用多个主管(或者它)?

时间:2015-02-18 21:12:41

标签: erlang otp

查看OTP的文档,似乎设置这些系统的典型方法是让一个主管监控多个工作人员:

http://www.erlang.org/doc/design_principles/sup_princ.html

这将很有效,直到运行主管的机器崩溃或与工人的机器切断。那么有没有理由没有几个主管,比如每台机器一个?

1 个答案:

答案 0 :(得分:3)

以下是如何在一台计算机上设置OTP应用程序:

enter image description here

有两个-behavior(application)件正在运行。每个都有一个顶级-behavior(supervisor)模块。在其他监督人员的监督下组建监督树并不罕见。

监督树非常适合管理员工,但面对机器故障时的高可用性是一个单独的问题。你可以把一个主管放在机器上监督其他机器上的工人,但如果主管机器发生故障,你仍然会丢失整棵树。

对于这种HA行为,您需要一些外部系统来监视机器/ BEAM并重新启动发生故障的事情。根据您的系统,您可能需要编写代码来查找并与其对等方重新集群。这些东西都不像监管树那样从OTP中解脱出来。