首页 > 其他分享 >pm2与go的完美结合(转)

pm2与go的完美结合(转)

时间:2023-01-09 14:45:28浏览次数:53  
标签:fork node pm2 完美 go main config

最近用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",
            },
        }
    ]
}

 

经过研究,发现其实PM2还可以用更优雅的方式启动任意二进制程序:(参考 https://github.com/Unitech/pm2/issues/471

apps:
  - name: myapp
    interpreter: none
	script: ./main
	args:
	  - ./config.product.json

 

或者,把go编译成二进制,直接pm2 start main ,我看默认的模式就是fork

标签:fork,node,pm2,完美,go,main,config
From: https://www.cnblogs.com/lidabo/p/17036999.html

相关文章

  • 使用 pm2 守护你的 .NET Core 应用程序
    一.守护进程的前世今生#守护进程,英文名:“daemon",也有守护神的意思。守护进程是一个在后台运行并且不受任何终端控制的进程,不会随着会话结束而退出。诸如mysql、apache等......
  • Egon推荐零基础转行IT全套精品课程
    1、python全栈高级项目开发精品课程如下,适用于零基础小白自学入行python开发、在职工程师高级提升,详情请咨询唯一指定微信tutu191920102、linux高级云算计课程(80%都是Ego......
  • (5)go-micro微服务domain层开发
    目录一domain层介绍说明二model层开发三repository层开发四service层开发五最后一domain层介绍说明domain层专注于数据库数据领域开发,我们把数据库相关操作全部......
  • 让 Java Agent 在 Dragonwell 上更好用
    本文是《容器中的Java》系列文章之3/n,欢迎关注后续连载 ......
  • Go语言学习Day3
    1.go的函数定义格式为函数名,参数列表,返回值列表和函数体。如果函数没有返回值,则返回列表可以省略。函数从第一条语句开始执行,直到执行return语句或者执行函数的最后一条语......
  • django_博客练习(文章详情/点赞/评论)
    文章详情页渲染文章内容侧边栏有分类显示通过设置路由的方式传递参数文章id作者用户名文章是通过文章对象渲染到前端的,所以你点击文章时也可以告诉后端你点击的是哪......
  • go语言环境配置(windous)
    1.下载go语言安装包:https://golang.google.cn/dl/2.配置环境变量:GOBIN:项目bin目录 GOPATH:项目目录(src下)GOROOT(go的环境变量)GOROOT,Go解释器安装路径,用于之后去调用g......
  • (转)Go test 详解
    原文:https://www.jianshu.com/p/b28595a281ecGotest的测试用例形式测试用例有四种形式:TestXxxx(t*testing.T)//基本测试用例BenchmarkXxxx(b*testing.B)//......
  • go语言基础
    1.变量的三种格式(1)标准格式:var变量名类型(2)批量格式:var(变量名类型,变量名类型。。。。。)(3)简短格式:变量名:=表达式(有缺陷,类似于python中的变量规则)注意:简短格式只......
  • 原神私服替换模型(3Dmigoto)教程
    本期教程教大家如何修改原神私服角色模型​首先下载3Dmigoto​第一次打开需要设置游戏路径​打开之后搜索loader点下一个​会跳转到这个地方,然后在我标蓝的地方输入你的游戏......