• 请不要在回答技术问题时复制粘贴 AI 生成的内容
LaZoe
V2EX  ›  程序员

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

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


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


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


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