问答 / 0 / 3 / 创建于 3年前
git pullgo build .killall porojectNamenohup ./projectName &新手勿怼,感谢大佬
平滑重启就行了吧
用endless,这样可以先替换bin包,再执行kill -SIGHUP 进程id就行了
kill -SIGHUP 进程id
不推荐使用热加载,生产环境的版本也不应该那么频繁的更新吧。
推荐看看 CICD,我自己的项目是用 github 生成文件后推到云服务器上,公司里的项目用 gitlab 构建 Docker 镜像。
另外你这就几行命令,整合成一个 sh 脚本就行了啊,比如 ./update.sh。
./update.sh
生产环境应该使用负载均衡进行流量切换,不应该使用热加载或平滑重启;
go部署在生成环境应该部署二进制,不使用代码部署,所以git pull等热加载操作不允许的;
使用热加载或平滑重启可能会遇到新进程启动失败的情况,新进程拉起失败,但是老服务已经stop或kill在退出了无法处理请求,在启动失败的情况下或服务中断。
在传统环境下可以使用nginx切换upstream实现手动切换流量,在容器环境下可以使用svc自动切换流量,实现好下线行为就可以无缝切换流量。
我要举报该,理由是:
平滑重启就行了吧
用endless,这样可以先替换bin包,再执行
kill -SIGHUP 进程id
就行了