nodejs vs spring boot 的选择 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
qfdk
V2EX    程序员

nodejs vs spring boot 的选择

  •  
  •   qfdk
    PRO
    qfdk 2019-02-14 16:12:01 +08:00 via iPhone 15698 次点击
    这是一个创建于 2434 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近心血来潮 想做个餐馆的项目。

    正在 node.js 和 Sping Boot 之间纠结.

    nodejs express 简单方便 扔到 docker 里面内存占用不是很大. 可以开 n 个实例 后面还可以配合做负载均衡,加上 forever 或者 pm2 也是美滋滋

    Spring Boot 配合 jpa,thymeleaf 模板引擎 和后面可以强大的扩展 感觉也是个不错的选择. 就是内存占用还是蛮厉害的. 轻松跑满 512m,但是这里可以用 jhipster 大礼包什么的,感觉也是很方便,加上有神器 ide 的支持 。。。。

    暂时不考虑前后端分离,不想单独在做前前端.

    服务器打算 1 G 内存的 vps 在 docker 中跑,感觉加上数据库 Spring boot 可能有些吃紧……

    不知道老哥们有何意见?
    第 1 条附言    2020-02-26 00:46:26 +08:00
    一年以后来说一下,裸辞之后家里没事儿干,两个月撸了一个站,现在感觉还是可以的。

    应为 Springboot 构建,但是看到了生产上一些未知因素,还是打算用 nodejs 来重构了。

    线上暂时稳定。
    48 条回复    2019-02-15 18:18:28 +08:00
    jswh
        1
    jswh  
       2019-02-14 16:17:43 +08:00   1
    1g 的 vps,就别上 java 了。node 可以,go 更好
    qfdk
        2
    qfdk  
    OP
    PRO
       2019-02-14 16:21:30 +08:00
    @jswh #1 我也再思考这个问题 之前 1G vps spring 全家桶本地跑的美滋滋,上了服务器看着内存跟过山车一样。现在个人有点儿倾向 node.js 但是 thymeleaf 的语法还是喜欢用。go 的话 有没有推荐的 crud 轮子系列 ?
    jswh
        3
    jswh  
       2019-02-14 16:28:10 +08:00
    @qfdk node 有 pug 也算比较成熟,其他模板引擎也挺多的。go 的话 https://awesome-go.com/#orm
    encro
        4
    encro  
       2019-02-14 16:39:43 +08:00   2
    当然是 php,node,python,go
    yishenggudou
        5
    yishenggudou  
       2019-02-14 16:41:09 +08:00   2
    写 demo 用 django 生产重构用 spring
    banmuyutian
        6
    banmuyutian  
       2019-02-14 16:42:19 +08:00   2
    我司先用 nodejs 前期快速开发,再用 spring cloud 重构……
    dJ4232i1CPlr690R
        7
    dJ4232i1CPlr690R  
       2019-02-14 16:42:35 +08:00
    新手贴无疑
    dJ4232i1CPlr690R
        8
    dJ4232i1CPlr690R  
       2019-02-14 16:48:49 +08:00   1
    java 占用内存确实比较大
    qfdk
        9
    qfdk  
    OP
    PRO
       2019-02-14 16:50:47 +08:00
    @encro #4 最好的语言不考虑,node 嗯
    @yishenggudou #5 历史原因不喜欢 python = =
    @banmuyutian #6 我也想到 nodejs 还是起步快,spring cloud 确实 靠谱,但是要吃服务器的 一个 eureka 一个 api gateway 加上 n 个实例 (都可以扔到 docker 里面)所以有点儿纠结。
    @namebyrant #7 来点儿中肯的建议
    photon006
        10
    photon006  
       2019-02-14 16:53:23 +08:00   1
    typescript 考虑下
    thomaspaine
        11
    thomaspaine  
       2019-02-14 16:55:13 +08:00   1
    用 node 啊,typescript+webstorm 也是美滋滋。

    orm 有 typeorm 这个轮子,很好用
    qfdk
        12
    qfdk  
    OP
    PRO
       2019-02-14 16:58:21 +08:00
    @photon006 #10 ts humm 弄得我都想 angular 了
    @thomaspaine #11 typeorm 马克
    liuzhen
        13
    liuzhen  
       2019-02-14 17:29:54 +08:00
    1g 内存 spring boot 可以玩,spring cloud 就别上了
    Rwing
        14
    Rwing  
       2019-02-14 17:38:32 +08:00
    不妨考虑下 .net core
    dany813
        15
    dany813  
       2019-02-14 17:40:20 +08:00   1
    node egg 写起来 快的一笔 orm sequelize ?
    qfdk
        16
    qfdk  
    OP
    PRO
       2019-02-14 18:05:06 +08:00
    @liuzhen #13 嗯 那些要买两个 512 的小鸡了

    @Rwing #14 那个算了吧 = = 不考虑

    @dany813 #15 egg 我看看这个蛋到底如何 Node.js & Koa 好东西
    janxin
        17
    janxin  
       2019-02-14 18:11:24 +08:00 via iPhone   1
    ts 走一波
    tyrealgray
        18
    tyrealgray  
       2019-02-14 18:12:49 +08:00   1
    不如考虑一下 node 的 fastify
    peyppicp
        19
    peyppicp  
       2019-02-14 18:21:56 +08:00   1
    可以考虑平衡一下开发时间和机器成本
    如果项目不大,512m 其实也能运行 springboot,想要良好运行 jvm 还是给 1g 吧,应用内不做缓存啥的一般也是够用了。换句话说,内存比起 cpu 来说还是便宜得多了
    用 springboot 好处就是海量第三方框架,开发省事,维护更省事,日后做大了还能方便迁移到 spring-cloud
    其实用 golang 也是可以的,成型快,mvc 用 gin,orm 用 gorm
    qfdk
        20
    qfdk  
    OP
    PRO
       2019-02-14 18:24:44 +08:00
    @janxin #17 humm
    @tyrealgray #18 我去看看这个东西 egg vs fastify it is one of the fastest web frameworks in town.
    AX5N
        21
    AX5N  
       2019-02-14 18:26:25 +08:00
    我觉得楼主就是想用 java,想用就加点小钱钱加点内存,又不是什么问题。
    yuanfnadi
        22
    yuanfnadi  
       2019-02-14 18:28:32 +08:00   1
    @qfdk typescript + nestjs .完美复刻 springboot 的体验。会 springboot 的,看半小时文档就可以开始开发了。
    gz911122
        23
    gz911122  
       2019-02-14 18:31:41 +08:00   1
    要不试试 java 别的轻量级框架
    比如 vert.x 或者别的基于 netty 的,内存占用能少一些
    izhangzhihao
        24
    izhangzhihao  
       2019-02-14 18:42:47 +08:00 via iPhone
    play framework 了解一下,16M 内存起步
    yishenggudou
        25
    yishenggudou  
       2019-02-14 18:46:39 +08:00
    @izhangzhihao 感觉 play framework 在 spring boot 崛起后 衰落了
    mars0prince
        26
    mars0prince  
       2019-02-14 18:47:22 +08:00
    nestjs 了解一蛤
    Cbdy
        27
    Cbdy  
       2019-02-14 18:48:33 +08:00 via Android   1
    Java/Spring Boot 没有太大必要上 Docker
    visonme
        28
    visonme  
       2019-02-14 18:59:05 +08:00   1
    不需要各种服务拆分,没有复杂的数据分析,也不需要考虑分布式 /集群问题,只是后台不复杂面向用户的 web 应用,那我还是推荐你用 nodejs 吧 ,而且可以前后端语言统一~
    xyzxiaoking
        29
    xyzxiaoking  
       2019-02-14 19:21:05 +08:00 via Android   1
    一个餐馆项目规模应该不大吧,直接 node 撸起,还快
    q8164305
        30
    q8164305  
       2019-02-14 19:41:48 +08:00 via Android
    小项目肯定 js 撸起来啊
    qfdk
        31
    qfdk  
    OP
    PRO
       2019-02-14 19:47:56 +08:00
    @AX5N #21 我在纠结,nodejs 和 java 都写过项目 都是成熟项目,nodejs 感觉内存 OK,java 内存刚刚好

    @gz911122 #23 要是 java 还是倾向 springboot

    @visonme #28 @xyzxiaoking #29 @q8164305 #30 @Cbdy #27 不考虑分布式,基本就是无脑 CRUD 操作,然后前端好看一点儿。 至于为什么用 docker,为了以后同行看到了 需要同样的服务可以快速启动一个 instance,或者弄成负载均衡实例。1G 内存的榨干性能。
    realkenshinji
        32
    realkenshinji  
       2019-02-14 19:47:58 +08:00 via iPhone   1
    node 用得熟悉就 node 吧,js 可以连前端一起写了
    qfdk
        33
    qfdk  
    OP
    PRO
       2019-02-14 20:01:45 +08:00
    @peyppicp #19 您给的建议真的很中肯。也是我在思考的一点,512 确实可以抛弃 springboot 来,为了防止以后 boom 还是要考虑到内存问题。Spring 全家桶在不考虑资源的情况下我会毅然决定去使用,跟您提到的优点一样,大厂老司机的风格。

    为什么内存比 CPU 便宜? 我感觉大多数瓶颈应该不在 cpu 上面吧,CPU 现在感觉 vps 都是计算能力过剩,然而是 RAM 经常不够用。golang 不很喜欢。
    zjsxwc
        34
    zjsxwc  
       2019-02-14 20:47:02 +08:00 via Android
    我站 spring boot 开发体验最爽
    jorneyr
        35
    jorneyr  
       2019-02-14 21:39:09 +08:00
    增加硬件能解决的问题就不要从软件入手。
    HangoX
        36
    HangoX  
       2019-02-14 22:21:16 +08:00
    不是熟悉哪种语言就用哪种吗?我熟悉 java,所以选择 SpringBoot。
    anguiao
        37
    anguiao  
       2019-02-14 23:01:15 +08:00
    没有什么是加钱不能解决的
    qfdk
        38
    qfdk  
    OP
    PRO
       2019-02-14 23:04:03 +08:00
    @HangoX #36 理论上是这样。。。 但是两种都熟悉 所以 语言这里不是 硬伤

    @jorneyr #35 @anguiao #37 钱要花再刀刃上, 到了 8120 年 ram 和 cpu 永远也是不够的

    @zjsxwc #34 所以也在纠结
    godoway
        39
    godoway  
       2019-02-15 08:25:34 +08:00 via Android
    可以考虑一下 vertx
    fengdianxun
        40
    fengdianxun  
       2019-02-15 08:38:27 +08:00 via Android
    php 呢?
    1134506391
        41
    1134506391  
       2019-02-15 08:50:56 +08:00
    see see
    gouflv
        42
    gouflv  
       2019-02-15 09:07:16 +08:00 via Android
    next.js 写 ts 真的美滋滋
    gouflv
        43
    gouflv  
       2019-02-15 11:44:55 +08:00
    #41 笔误了,应该是 nestjs
    gaojjx
        44
    gaojjx  
       2019-02-15 14:02:38 +08:00
    nodejs 天生就是异步非阻塞的,spring boot 到 2.0 以后才开始支持
    qfdk
        45
    qfdk  
    OP
    PRO
       2019-02-15 15:27:48 +08:00
    @godoway #39 node on JVM ?

    @fengdianxun #40 最好的语言不考虑了。

    @gouflv #43 这玩意儿底层是 express ?

    @gaojjx #44 spring boot @Async 也是美滋滋 加上定时任务的 @corn 还是爽
    godoway
        46
    godoway  
       2019-02-15 17:46:11 +08:00   1
    @qfdk vertx 的设计思想来源于 node,也可以这么说。
    godoway
        47
    godoway  
       2019-02-15 17:48:57 +08:00   1
    @qfdk 另外关于技术栈的性能可以看一下这个
    https://www.techempower.com/benchmarks/#section=data-r17&hw=ph&test=query
    qfdk
        48
    qfdk  
    OP
    PRO
       2019-02-15 18:18:28 +08:00
    @godoway #47 看了下 居然在前四名, 还是很可以的. rust + pg 看起来还是很牛逼的。 看了下他们的配置 还是高配。js 已经甩没边儿了。仔细看了下 要是 cloud 上 还是 nodejs 比较吃香, 另外 hapi 是个什么鬼 各种出头 比楼上 fastily 那个还要厉害。 等会儿好好研究下 感谢先
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3241 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 11:44 PVG 19:44 LAX 04:44 JFK 07:44
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86