关于pm2的fork启动模式和cluster模式的区别
个人理解:
fork是不是只启动一个进程,
cluster启动多个进程
不知道对不对,有谁可以帮我解答下
关于pm2的fork启动模式和cluster模式的区别
个人理解:
fork是不是只启动一个进程,
cluster启动多个进程
不知道对不对,有谁可以帮我解答下
可以参考stackoverflow上面的回答。简单的来说:
cluster_mode:用cluster来做负载均衡,你的业务代码不用做任何改动。
fork_mode:用fork模式启动(默认)。这种模式下有个特性,你可以修改exec_interpreter
,比如你的代码不是纯js,而是类似coffee script,那么,fork模式可能更适合你。
27 回答13.8k 阅读
8 回答3.5k 阅读✓ 已解决
6 回答1.3k 阅读✓ 已解决
5 回答5.3k 阅读✓ 已解决
4 回答1.6k 阅读✓ 已解决
3 回答1.7k 阅读
4 回答2.3k 阅读✓ 已解决
fork模式,单实例多进程,常用于多语言混编,比如php、python等,不支持端口复用,需要自己做应用的端口分配和负载均衡的子进程业务代码。
缺点就是单服务器实例容易由于异常会导致服务器实例崩溃。
cluster模式,多实例多进程,但是只支持node,端口可以复用,不需要额外的端口配置,0代码实现负载均衡。
优点就是由于多实例机制,可以保证服务器的容错性,就算出现异常也不会使多个服务器实例同时崩溃。
共同点,由于都是多进程,都需要消息机制或数据持久化来实现数据共享。纯个人理解,有不对的地方还请指正。