萌新请教两个关于 🥚 egg.js 的问题

2020-08-23 10:47:26 +08:00
 cat
1. 官方不推荐 pm2,那如何优雅的实现开机自动启动服务呢?写入到 init.d 吗?

2. 部署到 aliyun 的函数计算的最简单的方法是什么?我试过自定义环境但都失败了;腾讯云的 serverless 一键部署倒是成功了…

请各位大佬指点一下萌新,非常感谢
4207 次点击
所在节点    Node.js
20 条回复
cat
2020-08-23 11:39:04 +08:00
51 分钟惨案…
xiadd
2020-08-23 11:52:09 +08:00
docker 或者 systemd 吧
lucybenz
2020-08-23 12:37:28 +08:00
怎么这么黑
cat
2020-08-23 12:58:47 +08:00
@lucybenz 是 V2EX 的 node.js 板块就这样
ob
2020-08-23 13:01:57 +08:00
请教下,pm2 可以开机自己启动服务吗?
cat
2020-08-23 13:28:31 +08:00
@ob 搜一下 pm2 startup 我也是在找 egg 开机启动时看到的
fengxianqi
2020-08-23 14:07:54 +08:00
egg 官方迷之自信,我也是为了自启动和方便管理,用了 pm2 。
cat
2020-08-23 14:14:23 +08:00
@fengxianqi 有遇到什么坑没?
miniwade514
2020-08-23 14:16:09 +08:00
关于第 2 点有点好奇,是在函数里面起了一个 egg 服务? severless 应该不用自己起服务吧,直接写接口就好了
fengxianqi
2020-08-23 14:32:01 +08:00
@cat #8 暂时没有,目前是还没上线的项目用到(预计上线时也会用),可能不具备参考性,理论上没什么问题的
cat
2020-08-23 14:51:29 +08:00
@fengxianqi 谢谢大佬,对我来说已经很有帮助
cat
2020-08-23 14:56:14 +08:00
@miniwade514

直接写接口 需要处理 request 和 response 这些 context,才能与 egg 兼容(吧?)

我的猜测是,severless 收到请求时,如果之前的服务还在,就将请求转发给 egg 服务;如果一段时间没请求就结束服务;所以长时间没请求之后的首次请求会比较慢;

这个猜测是基于阿里云函数计算的 自定义环境 中关于启动时间、服务端口 等推导而来,以及腾讯云的 severless 确实首次请求会比较慢;如果理解得不对请指正。
leafdream
2020-08-23 14:56:36 +08:00
不推荐就不用么 明显 pm2 好用
如果容器环境用 docker 也行
cat
2020-08-23 15:03:01 +08:00
@leafdream 除了官方不推荐 pm2,甚至官方的 issue 中看到了 “pm2 这么受欢迎很大一部分原因其实是好看” 这样的高赞评论,以至于让我怀疑是不是 pm2 和 egg 有什么坑……
otakustay
2020-08-23 15:23:25 +08:00
@cat faas 的冷启动慢是通病,办法是留一个保活接口过几分钟去请求一次,请求保活接口的函数也可以挂在 faas 上,用定时触发器
cat
2020-08-23 15:36:11 +08:00
@otakustay 嗯嗯,这块是有经验的,之前玩过 php 的函数计算,刚刚找到官方的一篇文章,尝试一下成功了,嘿嘿
libook
2020-08-24 11:05:19 +08:00
egg 不了解,如果没有实质的证据指出 pm2 和 egg 会有兼容问题的话,自己用什么顺手就用什么。

pm2 startup 可以用来配置系统自启,详细看手册。

如果团队有意向用 K8s 之类的容器管理方案的话,用 docker 直接在容器启动的时候用 node 指令执行程序就行了,node 进程退出则容器停止,然后就可以通过管理容器的启动、停止、重启来管理程序了。

如果不折腾容器的话,也可以自己写 init.d\service\systemd 服务管理配置。
OHyn
2020-08-24 12:39:50 +08:00
我之前用 pm2 启 egg,之后 cpu 占用率一直莫名其妙的高,你注意下这个问题。。。没出现就可以继续用。。
lix7
2020-08-24 12:47:15 +08:00
我们就 PM2 启 egg,没啥问题
cat
2020-08-24 17:44:43 +08:00
@OHyn
@lix7

谢谢二位大佬

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/700641

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX