Erlang 引入了”随它崩溃“的哲学理念,这部分关键代码被监控着,监控者 supervisor 唯一的职责是知道代码崩溃后干什么,让这种理念成为可能的正是 Actor 模型。
在 Erlang 中,每段代码都运行在进程中,进程是 Erlang中 对 Actor 的称呼,意味着它的状态不会影响其他进程。系统中会有一个 supervisor,实际上它只是另一个进程。被监控的进程挂掉了,supervisor 会被通知并对此进行处理,因此也就能创建一个具有自愈功能的系统。如果一个 Actor 到达异常状态并且崩溃,无论如何,supervisor 都可以做出反应并尝试把它变成一致状态,最常见的方式就是根据初始状态重启 Actor。