每个主管有多少工人?

How many workers per supervisor?

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

是否应该由一个主管进程监督同一特定领域的所有 个工作人员(数千),或者您是否应该放置较少数量的监督进程(在该主要主管之下)监督工作进程的一个子集?

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

exit 消息。

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