V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cat
V2EX  ›  Node.js

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

  •  
  •   cat · 2020-08-23 10:47:26 +08:00 via iPhone · 4173 次点击
    这是一个创建于 1551 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 官方不推荐 pm2,那如何优雅的实现开机自动启动服务呢?写入到 init.d 吗?

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

    请各位大佬指点一下萌新,非常感谢
    第 1 条附言  ·  2020-08-23 15:37:30 +08:00
    关于第二个问题,按照官方这篇教程,也算初步成功了: https 不 help 想 aliyun 验 com 证 document_detail/162578.html
    20 条回复    2020-08-24 17:44:43 +08:00
    cat
        1
    cat  
    OP
       2020-08-23 11:39:04 +08:00 via iPhone
    51 分钟惨案…
    xiadd
        2
    xiadd  
       2020-08-23 11:52:09 +08:00 via iPhone
    docker 或者 systemd 吧
    lucybenz
        3
    lucybenz  
       2020-08-23 12:37:28 +08:00
    怎么这么黑
    cat
        4
    cat  
    OP
       2020-08-23 12:58:47 +08:00 via iPhone
    @lucybenz 是 V2EX 的 node.js 板块就这样
    ob
        5
    ob  
       2020-08-23 13:01:57 +08:00 via Android
    请教下,pm2 可以开机自己启动服务吗?
    cat
        6
    cat  
    OP
       2020-08-23 13:28:31 +08:00 via iPhone
    @ob 搜一下 pm2 startup 我也是在找 egg 开机启动时看到的
    fengxianqi
        7
    fengxianqi  
       2020-08-23 14:07:54 +08:00 via Android
    egg 官方迷之自信,我也是为了自启动和方便管理,用了 pm2 。
    cat
        8
    cat  
    OP
       2020-08-23 14:14:23 +08:00 via iPhone
    @fengxianqi 有遇到什么坑没?
    miniwade514
        9
    miniwade514  
       2020-08-23 14:16:09 +08:00
    关于第 2 点有点好奇,是在函数里面起了一个 egg 服务? severless 应该不用自己起服务吧,直接写接口就好了
    fengxianqi
        10
    fengxianqi  
       2020-08-23 14:32:01 +08:00
    @cat #8 暂时没有,目前是还没上线的项目用到(预计上线时也会用),可能不具备参考性,理论上没什么问题的
    cat
        11
    cat  
    OP
       2020-08-23 14:51:29 +08:00
    @fengxianqi 谢谢大佬,对我来说已经很有帮助
    cat
        12
    cat  
    OP
       2020-08-23 14:56:14 +08:00
    @miniwade514

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

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

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

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

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

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

    谢谢二位大佬
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1053 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 19:15 · PVG 03:15 · LAX 11:15 · JFK 14:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.