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

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

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


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


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


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