方案1:逐步重启worker进程
具体实现: github.com/xuezier/egg…
问题:
- 无法优雅的解决当前
worker
进程正在处理的请求,以及一些延时的任务 - 无法控制流量,
master
进程任然会分配请求给当前杀死的进程
方案2: 针对SSR的依赖的js bundle
文件,添加版本
具体实现:(待验证)
问题:
- 是否存在内存占用过多的问题
- 如何保证新发布的版本在更改版本号之前生效
方案3:delete require.cache
具体实现:参考基于nodejs线上代码热部署原理与实现
问题:
- 内存管理的问题, 参考一行 delete require.cache 引发的内存泄漏血案
方案4:使用PM2进行管理
具体实现:
代码如下,来自egg官方:
// server.js
const egg = require('egg');
const workers = Number(process.argv[2] || require('os').cpus().length);
egg.startCluster({
workers,
baseDir: __dirname,
});
启动命令,改用pm2
pm2 start server.js
问题:
方案5:SLB(服务器负载均衡)
具体实现:
问题:
- 依赖nginx配置
参考
- 关于eggjs热部署问题
- Egg.js 多机平滑重启实践
- eggjs 的单机热部署
- egg-deploy
- LB 负载均衡的层次结构
- Egg.js 进程管理为什么没有选型 PM2 ?
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!