设为首页 加入收藏

TOP

elixir 高可用系列(五) Supervisor(三)
2017-10-09 13:35:00 】 浏览:3862
Tags:elixir 可用 系列 Supervisor
(:server_c, :err) :ok 15:31:35.264 [error] GenServer :server_c terminating ** (stop) "stop ServerC" Last message: {:"$gen_cast", :err} State: [] # serverC 出错后,因为它的监督者 SupervisorRoot 的策略是 :one_for_all,所以所有的 proocess 都重启了 iex(11)> GenServer.call(:server_a, :display) 'ServerA PID: <0.166.0>' iex(12)> GenServer.call(:server_c, :display) 'ServerC PID: <0.168.0>' iex(13)> GenServer.call(:server_b, :display) 'ServerB PID: <0.167.0>'

通过监督树,我们可以给不同的 process 分组,然后让每个组有不同的监督策略。

总结

有了监督机制,可以及时的把握所有 process 的状态,通过监督树,还可以加入不同恢复机制。 因此,用好 Supervisor 模块,可以极大提高系统的可用性。

Supervisor 模块详细内容可以参见:http://elixir-lang.org/docs/stable/elixir/Supervisor.html

来源:http://blog.iotalabs.io/

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇elixir 高可用系列(四) Task 下一篇elixir 高可用系列 - 目录

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目