Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
一个特定的主管流程应该监督多少个工人是否有界限?在构建有关性能和容错的 OTP 监督树时,我一直在多次回到这个问题:
应该由单个主管进程监督同一特定域的所有工作人员(数千个),还是应该放置较少数量的监督进程(在该主主管之下)来监督工作进程的子集?
主管可以管理的孩子数量没有界限或限制。这仅受系统对最大进程数的限制。还应考虑到,主管本身并不进行任何主动管理。除非它被要求做某事,否则它所做的就是坐下来等待exit来自它的孩子的消息。
exit
应该由一个主管管理所有工人,还是应该将他们分配给一些子主管,这个问题更多是一个架构问题。如果所有工人都是同一类型one_for_one或simple_one_for_one使用策略,那么直接管理工人的单个主管是最佳解决方案。如果要求更复杂,将相同类型的工人分组到一个子主管中可能会很有用,例如实施一些特殊的重启策略。
one_for_one
simple_one_for_one