关于pm2的fork启动模式和cluster模式的区别

关于pm2的fork启动模式和cluster模式的区别
个人理解:
fork是不是只启动一个进程,
cluster启动多个进程
不知道对不对,有谁可以帮我解答下

阅读 25.3k
3 个回答

fork模式,单实例多进程,常用于多语言混编,比如php、python等,不支持端口复用,需要自己做应用的端口分配和负载均衡的子进程业务代码。
缺点就是单服务器实例容易由于异常会导致服务器实例崩溃。

cluster模式,多实例多进程,但是只支持node,端口可以复用,不需要额外的端口配置,0代码实现负载均衡。
优点就是由于多实例机制,可以保证服务器的容错性,就算出现异常也不会使多个服务器实例同时崩溃。

共同点,由于都是多进程,都需要消息机制或数据持久化来实现数据共享。纯个人理解,有不对的地方还请指正。

可以参考stackoverflow上面的回答。简单的来说:

  1. cluster_mode:用cluster来做负载均衡,你的业务代码不用做任何改动。

  2. fork_mode:用fork模式启动(默认)。这种模式下有个特性,你可以修改exec_interpreter,比如你的代码不是纯js,而是类似coffee script,那么,fork模式可能更适合你。

顶一下 居然沉默了

推荐问题
宣传栏