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

现在有成熟的 jdk17 + springboot3 微服务稳定落地的案例没

  •  
  •   bzq · 2025 年 7 月 9 日 · 7597 次点击
    这是一个创建于 192 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近公司这边给了一个机会启动一个新项目,公司也没有什么技术很牛的人,之前的项目都是 java8 springcloud 阿里巴巴那套,在纠结正好拿这这个机会 试一下新的。
    各位大佬,有什么建议吗?
    80 条回复    2025-07-14 16:34:43 +08:00
    to2false
        1
    to2false  
       2025 年 7 月 9 日
    干就完事了,不写 java 的路过
    salmon5
        2
    salmon5  
       2025 年 7 月 9 日
    练练手,挺好的
    ATKLLL
        3
    ATKLLL  
       2025 年 7 月 9 日
    没有什么技术很牛的人,可以理解为小公司吗,如果是小公司为啥要搞微服务? 我公司在这方面踩了大坑,说多了都是泪
    lanyuanxiaoyao
        4
    lanyuanxiaoyao  
       2025 年 7 月 9 日
    没啥建议,用就是了,如果不是用了什么特别 hack 的手法,基本和你在 jdk8+spring boot 2.0 没啥区别
    xubeiyou
        5
    xubeiyou  
       2025 年 7 月 9 日
    github 找个脚手架搭起来 干就完事了。。。
    raycloud
        6
    raycloud  
       2025 年 7 月 9 日 via Android
    新项目直接 21 了
    anakinsky
        7
    anakinsky  
       2025 年 7 月 9 日
    公司项目就别瞎折腾了,少加点班不好吗
    sheeta
        8
    sheeta  
       2025 年 7 月 9 日
    直接 21 不好吗
    lanyuanxiaoyao
        9
    lanyuanxiaoyao  
       2025 年 7 月 9 日
    @lanyuanxiaoyao 至于上生产,我这上很久了,不过也就是普通服务集群,倒是没遇到什么和 jdk 或者 spring boot 相关的硬伤,主要也是因为 spring ai 系列要 3.0 以上,就直接上了
    gongym
        10
    gongym  
       2025 年 7 月 9 日
    没区别啊,我们生产早就都是 java17+是 springboot3 了,做业务系统和 java8 没任何区别
    chendy
        11
    chendy  
       2025 年 7 月 9 日
    想玩自己玩,公司项目稳定第一,为了尝鲜加班犯不上
    litchinn
        12
    litchinn  
       2025 年 7 月 9 日   ❤️ 2
    就正常升级就行了,特殊特性一般也用不到(比如向量 API SIMD ),像虚拟线程你还得升级到 21, 21 的还有 bug ,24 中修复了,但是 24 不是 LTS
    所以对于没有什么技术很牛的公司来说,改变只是将 javax 改成 Jakarta ,改改 GC 而已
    bzq
        13
    bzq  
    OP
       2025 年 7 月 9 日
    @ATKLLL 确实是小公司,我们这个项目组产研测大概 15 个人左右,其实我了解玩这个项目是可以起一个单体项目就可以完成的。但是我是想这 趁这个机会学一下。


    @lanyuanxiaoyao
    @xubeiyou 也是因为怕有点什么疑难杂症解决不了的。毕竟我还得弄网关,认证,等这些东西。


    @raycloud
    @sheeta 我想这一步一步来,先 17 在 21


    @anakinsky 我们公司是非常以业务为主的一个公司,说不好听的,我们技术就是他们业务人员的外包,就算不搞这些,领导也会给你分配其他的活,让你闲不下来,该加班还是加班
    spike0100
        14
    spike0100  
       2025 年 7 月 9 日
    ai 相关必须 sb3+j17 。感觉没什么差异
    grant911
        15
    grant911  
       2025 年 7 月 9 日
    落地不是随便搞搞? 怕的是其他低阶依赖跟不上要重写。尤其是用了国内开源的
    xubeiyou
        16
    xubeiyou  
       2025 年 7 月 9 日
    @bzq 直接拿阿里巴巴的那一套就行了
    iintothewind
        17
    iintothewind  
       2025 年 7 月 9 日
    直接上 21, jdk17 有点老了
    wkm1115
        18
    wkm1115  
       2025 年 7 月 9 日
    啊??? jdk17 + springboot3 不是都生产落地几年了吗? 现在都在观望 21 了
    kid1412621
        19
    kid1412621  
       2025 年 7 月 9 日 via iPhone
    Spring 7 + spring boot 4 刚刚发布😂
    Pettyfer
        20
    Pettyfer  
       2025 年 7 月 9 日
    jdk21 + springboot3 已经稳定用了一年了,基本没有什么坑
    gefangshuai
        21
    gefangshuai  
       2025 年 7 月 9 日
    有啥区别吗?
    gefangshuai
        22
    gefangshuai  
       2025 年 7 月 9 日
    我直接 kotlin + springcloud
    nekoneko
        23
    nekoneko  
       2025 年 7 月 9 日
    直接 jdk21, 另外小公司不建议用 springcloud
    Vraw5
        24
    Vraw5  
       2025 年 7 月 9 日
    可以玩玩 jdk21 + spingboot3 + graalvm
    Pettyfer
        25
    Pettyfer  
       2025 年 7 月 9 日
    微服务其实不用局限在 springcloud ,不如先按模块开发业务,后续找瓶颈再扩展微服务,至于用不用 alibaba 全家桶就根据实际环境来了
    Akitora
        26
    Akitora  
       2025 年 7 月 9 日
    没差+1 ,真要在 JVM 平台上尝鲜的不如 kotlin + JDK21 以上
    lmengmeng
        27
    lmengmeng  
       2025 年 7 月 9 日
    同 jdk21 + springboot3 差不多一年了,记得好像就是升级后,copy 以前的代码,有些不兼容的问题
    banmuyutian
        28
    banmuyutian  
       2025 年 7 月 9 日
    没啥区别啊,只有升级到 21 因为包名修改了稍微有兼容性问题
    tairan2006
        29
    tairan2006  
       2025 年 7 月 9 日
    直接用 21 就行,没啥问题的
    CoderChan
        30
    CoderChan  
       2025 年 7 月 9 日
    时间多就搞,时间少就不搞
    ccw4wcc
        31
    ccw4wcc  
       2025 年 7 月 9 日
    看一下 blade x 这个脚手架,我司就是用这个,基于 17+boot 3 ,但是我司是商业版的,你看下社区版的是不是也是这个配置
    gongshishao126
        32
    gongshishao126  
       2025 年 7 月 9 日   ❤️ 1
    小问题,干久了你就会发现,管他什么技术框架,就是干,逢山开路遇水搭桥,有问题解决就好了,多的是人已经踩过坑了
    xiaohupro
        33
    xiaohupro  
       2025 年 7 月 9 日
    问题不大,我在 2023 年开始已经在公司内开发的时候推 jdk17 了,但是大概率推行过程中大部分人还是水用 jdk8 的写法,不过起码启动速度和一些相关优化肯定是要比 jdk8 好的,在开发过程中大部分场景其实用不到新特性。放手升吧,8 -> 17 相对来说还是很稳的。
    chenfang
        34
    chenfang  
       2025 年 7 月 9 日
    @bzq 17 升级 21 应该可以无缝升级,但是等业务上来了 说不定哪里回出问题,所以如果想用 21 建议直接 21
    我们公司现在生产从 8 一路升级到了 21 升级还是有坑的
    yy306525121
        35
    yy306525121  
       2025 年 7 月 9 日 via iPhone
    只要不转 native ,都是一样的用
    prosgtsr
        36
    prosgtsr  
       2025 年 7 月 9 日
    直接 21
    leegradyllljjjj
        37
    leegradyllljjjj  
       2025 年 7 月 9 日
    直接 servlet+jsp+sqlite
    helloword001
        38
    helloword001  
       2025 年 7 月 9 日
    @nekoneko 不用 springcloud 用啥啊
    archer2ee
        39
    archer2ee  
       2025 年 7 月 9 日
    我们公司全部 java8 直接升 21 了,目前用着稳定落地了
    liqingyou2093
        40
    liqingyou2093  
       2025 年 7 月 9 日
    有没有大佬有脚手架推荐
    cnhongwei
        41
    cnhongwei  
       2025 年 7 月 9 日
    jdk 21 + spring boot 3 完全没有问题,但是建议不要直接使用微服务,先使用 spring modulish 把模块划分好,等需要的时候再使用微服务。
    clf
        42
    clf  
       2025 年 7 月 9 日
    没啥问题 JDK17 唯一的坑就是 toList() 和 List.of() 等生成的类在序列化的时候会炸( Dubbo3 )
    spritecn
        43
    spritecn  
       2025 年 7 月 9 日
    起新项目一点问题都没,抛开语法不说 17/21 下的 G1 还是比 java8 那个 GC 稳很多,语法上 list.stream().toList(),'''长字符串用起来还是很实在
    nekoneko
        44
    nekoneko  
       2025 年 7 月 9 日
    @spritecn 21 的多线程模型比 8 强太多了, 综合提升 40%~70%, IO 密集型直接提升 3 倍
    fengyedzf
        45
    fengyedzf  
       2025 年 7 月 9 日 via iPhone
    一样的,放心用
    northernsongy2
        46
    northernsongy2  
       2025 年 7 月 9 日
    直接 21 吧。我们公司用 11/17 的都必须升级到 21. 反倒是用 8 的,多给了点时间,因为 8 升级 21 稍微麻烦丢丢
    rockdodos
        47
    rockdodos  
       2025 年 7 月 9 日
    jdk21 springboot 虚拟线程稳定用了 1 年多了
    interim
        48
    interim  
       2025 年 7 月 9 日
    21 + springboot 3 落地一年了,不建议用 alibaba 那一套,有重大配置变更更新日志和文档都没写,举个例子比如 nacos 新版本变更了配置文件的读取方式之前没看到有升级说明。
    nm1st
        49
    nm1st  
       2025 年 7 月 9 日
    21 虚拟线程 有缺陷, 等 25 出了就可以升上去了
    HENQIGUAI
        50
    HENQIGUAI  
       2025 年 7 月 9 日
    直接 24 ,等 9 月份出 25 了无缝衔接。而且真的确定是因为业务足够复杂需要上微服务吗。
    win301
        51
    win301  
       2025 年 7 月 9 日
    jdk24 + springboot3 ,没有任何问题,还有就是建议把 idea 升级到最新版本,这样才能发挥最新 jdk 的威力,当然了目前最新版本的 jdk 对 jdk24 的支持并不完美,就比如 kotlin 编译选项里最高就只能选择 jdk23,不过新版本已经在路上了,理论上不超过 2 周就会推出针对 jdk24 优化过的版本
    bzq
        52
    bzq  
    OP
       2025 年 7 月 9 日
    @HENQIGUAI 不是的,从业务复杂度来说,单体,微服务都行,用微服务就是为了多用点 cloud 其他组件,让自己在回顾学习一下,这两年净写业务了。
    shiloh595
        53
    shiloh595  
       2025 年 7 月 9 日
    先搞一个单体项目干它😁
    unco020511
        54
    unco020511  
       2025 年 7 月 9 日
    为啥不直接用 kotlin 呀,忽略 java 这种上古语言吧
    rockddd
        55
    rockddd  
       2025 年 7 月 9 日
    @helloword001 #38 我也纳闷呢,不用 springcloud 用啥,小公司不意味着业务也小
    dddd1919
        56
    dddd1919  
       2025 年 7 月 9 日
    用新版本框架写新项目,你可能都感知不到跟旧版本的开发差异
    404E
        57
    404E  
       2025 年 7 月 9 日
    @unco020511 虽然我自己也用 kotlin 也觉得好用爱用,但是公司项目得考虑招人的时候能不能找到吧,java 随便招
    highkay
        58
    highkay  
       2025 年 7 月 9 日
    1. 为什么要用微服务?不要拿公司的项目练手,压力会很大,也不负责任。
    2. vibe coding 的话,单体仓库上下文更友好。你也说了公司没啥技术氛围,可以让你有更多的时间搞点别的。
    monmon
        59
    monmon  
       2025 年 7 月 9 日
    @404E 水平不是很离谱,上手最多三五天就能用个差不多吧
    JoeDH
        60
    JoeDH  
       2025 年 7 月 9 日
    现在微服务不用 alibaba 那套,现在用啥?
    JoeDH
        61
    JoeDH  
       2025 年 7 月 9 日
    @interim #48 现在都不用 alibaba 那套了吗,最新用啥
    richarddingcn
        62
    richarddingcn  
       2025 年 7 月 9 日
    为啥不直接 21 没啥区别注意虚拟线程+synchronize 有坑就行
    wp2wyx
        63
    wp2wyx  
       2025 年 7 月 9 日
    我们直接 21+spring boot3 ,但是也没支撑过什么大型服务,就和之前用法区别不大。顶多用个封装好的 webflux 、httpinterface
    Hudiebbk
        64
    Hudiebbk  
       2025 年 7 月 9 日
    kotlin+jdk21 都跑了两年了
    carlojie
        65
    carlojie  
       2025 年 7 月 9 日
    我们公司使用 21+spring boot3
    cheng6563
        66
    cheng6563  
       2025 年 7 月 9 日
    Java 本身版本随便升,没啥兼容性问题,可能一些 javax 的包挪走了手动依赖加回来就行
    SpringBoot 升级,主要就是 Security 组件和 Jakarta 的问题。
    然后没事别折腾 SpringCloud 了,时代变了,现在就算是做微服务也是从运维层解决问题。
    facebook47
        67
    facebook47  
       2025 年 7 月 9 日 via Android
    直接 21 ,ems-admin
    facebook47
        68
    facebook47  
       2025 年 7 月 9 日 via Android   ❤️ 1
    @liqingyou2093 ems-admin
    DeWjjj
        69
    DeWjjj  
    PRO
       2025 年 7 月 10 日   ❤️ 1
    java 新人表示,你说的那套 j8 ,我就压根没玩过。
    学的时候就是 j17 和 springboot3 。
    qxmqh
        70
    qxmqh  
       2025 年 7 月 10 日
    公司项目到现在依然是 JDK8 +2.2 。 不耽误赚钱。
    yosoroAida
        71
    yosoroAida  
       2025 年 7 月 10 日
    没啥区别,因为阿里云扫描 cve 漏洞,已经被摁着从 jdk8+spring boot2 迁移到 jdk17 + spring boot 3 上了
    kaf
        72
    kaf  
       2025 年 7 月 10 日
    都没啥技术的老旧项目,还不接触下新版本,你以后跳槽咋办
    giantreaper0
        73
    giantreaper0  
       2025 年 7 月 10 日
    我们直接干 24 虚拟线程去了
    giantreaper0
        74
    giantreaper0  
       2025 年 7 月 10 日
    不建议小项目上微服务,甚至中型项目也没必要上微服务,完全可以一套代码部署多个副本,通过 nginx 路由规则分流做业务,分布式事务是一个头疼的问题,市面上没有一个框架做得好的
    914496397
        75
    914496397  
       2025 年 7 月 10 日
    之前我们公司自己有个项目就用的我写的微服务框架 jdk24+spring boot3 ,自己写的每行代码都门清,比开源框架放心
    iv8d
        76
    iv8d  
       2025 年 7 月 10 日 via Android
    一步到位比较好,反正目前就 8 个非 8
    404E
        77
    404E  
       2025 年 7 月 14 日
    @monmon 那是不是招人入职的时候就会说要求转语言?
    alexluo1
        78
    alexluo1  
       2025 年 7 月 14 日
    建议只有一个,不要让代码看上去还是 11 年前的样子就行
    monmon
        79
    monmon  
       2025 年 7 月 14 日
    @404E #77 面试时肯定要提一嘴,使用 Kotlin 也帮助会筛选掉一部分人
    404E
        80
    404E  
       2025 年 7 月 14 日
    @monmon #79 确实
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1050 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 18:33 · PVG 02:33 · LAX 10:33 · JFK 13:33
    ♥ Do have faith in what you're doing.