V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qfdk
V2EX  ›  程序员

nodejs vs spring boot 的选择

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

    正在 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
       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 重构……
    namebyrant
        7
    namebyrant  
       2019-02-14 16:42:35 +08:00
    新手贴无疑
    namebyrant
        8
    namebyrant  
       2019-02-14 16:48:49 +08:00   ❤️ 1
    java 占用内存确实比较大
    qfdk
        9
    qfdk  
    OP
       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
       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
       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
       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
       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
       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
       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
       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
       2019-02-15 18:18:28 +08:00
    @godoway #47 看了下 居然在前四名, 还是很可以的. rust + pg 看起来还是很牛逼的。 看了下他们的配置 还是高配。js 已经甩没边儿了。仔细看了下 要是 cloud 上 还是 nodejs 比较吃香, 另外 hapi 是个什么鬼 各种出头 比楼上 fastily 那个还要厉害。 等会儿好好研究下 感谢先
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5402 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 09:36 · PVG 17:36 · LAX 01:36 · JFK 04:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.