最近用go语言重写了一个node的小项目,因为并发量大到两台node也只能勉强扛住的地步,顺便说一下,pm2的cluster模式在极高的并发量下其实不行,不知道为什么,后来用fork模式+node原生的cluster模块才搞定。
因为go重写的版本匆忙上线,测试时我居然用的是screen在后台跑。看了beego关于supervisor部署的介绍,感觉那不是我想要的东西,因为我觉得pm2应该也有这样的功能,于是去查了文档,果然有,测试跑了几天,完全没有问题。配置很简单,与node完美并存
```
$ cat pm2.config.js
module.exports = {
apps: [
{
name: "goapp",
script: "./config.product.json", // script当成配置文件,在go中通过os.Args[1]获取到
instances: 1,
exec_mode: "fork", // 一定要是fork
interpreter: "./main", // windows下加.exe
env: { // 环境变量
myenv: "product",
},
}
]
}
```