每个主管有多少工人?

Posted

技术标签:

【中文标题】每个主管有多少工人?【英文标题】:How many workers per supervisor? 【发布时间】:2020-05-12 00:35:34 【问题描述】:

一个特定的主管进程应该监督多少个工人是否有界限?在构建有关性能和容错性的 OTP 监督树时,我一直在多次回到这个问题:

应该一个监督进程监督同一特定域的所有工人(数千),还是应该放置较少数量的监督进程(在那个主监督下)来监督工人的子集流程?

【问题讨论】:

【参考方案1】:

主管可以管理的孩子数量没有界限或限制。这仅受系统对最大进程数的限制。还应考虑到,主管本身并不进行任何主动管理。除非它被要求做某事,否则它所做的就是坐下来等待来自其子级的exit 消息。

应该由一个主管管理所有工人,还是应该将他们分配给一些子主管,这更像是一个架构问题。如果所有工人都是同一类型并且使用one_for_onesimple_one_for_one 策略,那么一个主管直接管理工人是最好的解决方案。如果要求更复杂,将相同类型的工人分组到一个子主管中可能会很有用,例如实施一些特殊的重启策略。

【讨论】:

以上是关于每个主管有多少工人?的主要内容,如果未能解决你的问题,请参考以下文章

重新启动 => erlang 主管的瞬态与永久

如何使用芹菜工人将 django 项目部署到谷歌云?

设计模式—建造者模式

设计模式—建造者模式

如何在 Elixir 中建模主管树

天辰主管:聊一下关于人生感悟的一段话娱乐一下