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

生产环境用比较新的 Java 版本,有遇到什么坑的吗?

  •  
  •   luckyrayyy · 31 天前 · 2847 次点击
    这是一个创建于 31 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想从 8 切到 11 了,不知道有没有什么风险。

    34 回复  |  直到 2019-08-23 11:59:08 +08:00
        1
    ahmcsxcc   31 天前
    8 已经很新了吧
        2
    weo0   31 天前
    我都见过用 6 的。。。。
        3
    fumichael   31 天前   ♥ 1
    甲骨文律师信警告呗
        4
    luozic   31 天前 via iPhone
    license 除非用 openjdk 等
        5
    wysnylc   31 天前
    11 是 tls,有什么坑也轮不到你踩,或者说大部分人包括我和我们
        6
    ben1024   31 天前
    生产没事别折腾
        7
    abdiweli   31 天前
    我们的一个项目还在 6 上
        8
    anakinsky   31 天前
    8 以后的版本不能商用了吧
        9
    echo1937   31 天前
    @fumichael #3
    @anakinsky #8

    JDK 的免费版本,我知道的就有 6 个。
        10
    zzf2019   31 天前
    jdk 我昨天用 openjdk 遇到过坑,openjdk 太精简了,有些偏门的问题,直接无解,现在换成 oracle jdk,大了点,但是应该不会出现问题了
        11
    Cbdy   31 天前
    我司生产用这个
    https://adoptopenjdk.net/
        12
    likaka   31 天前
    没有升级理由
        13
    Rwing   31 天前
    9 月份就出 13 了,然而很多人还在用 8 并且认为 8 很新 (狗头)
        14
    CloudnuY   31 天前
    祖传 1.5 不说话🙊
        15
    micean   31 天前
    就等着 13 了
        16
    iPhoneXI   31 天前 via Android
    8 新个鬼
    10 加上了 var 类型推断,11 是 lts
        17
    LeeSeoung   31 天前
    = =我觉得 10 以上的版本自己小项目玩玩还可以,大部分生产还是 8 为主,避免后面找人接坑一头雾水。。
        18
    Cbdy   31 天前
    @LeeSeoung compile level 8,跑在 Java 11 的 JVM 上,毕竟新版本性能、GC 提升明显
        19
    monkeyk   31 天前
    都 8 已经 5 年了, 不计划更新 /
        20
    echo1937   31 天前
    @zzf2019 #10 都是些啥问题啊,分享分享
        21
    qwerthhusn   31 天前
    tls1.3 支持的不是特别好,作为客户端如果连接到支持 tls1.3 的 http 服务时,偶现的握手失败,不过新的更新貌似已经解决了这个问题。。(因为 java11 出来的时候好像 tls1.3 还没最终发布,实现的草稿)

    jdk9 开始带的那个 HttpClient 建议也别使用,继续使用第三方的 http 库,也是多线程情况下出现线程永远卡死处于 WAITING 状态(不知道跟 HTTP2 有没有关系),JDK 的 JIRA 上有不少 HttpClient 相关的 BUG,特别是跟 TLS1.3/HTTP2 相关的

    其余的没发现啥问题,用的 amazon corretto
        22
    guisheng   31 天前
    11 可以自己创建项目玩,不建议直接上生产
        23
    xuanbg   31 天前
    上 11 的话,很多 8 的代码都要改。。。然后就怂了
        24
    qwerthhusn   31 天前
    HttpClient 的 BUG,使用默认的 API,没瞎设置什么参数,最后所有的线程都卡死在这里

    "XNIO-1 task-3" #58 prio=5 os_prio=0 cpu=214.82ms elapsed=61392.57s tid=0x00007fabf404a800 nid=0x1a972 waiting on condition [0x00007fac577fc000]
    java.lang.Thread.State: WAITING (parking)
    at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
    - parking to wait for <0x000000008994e000> (a java.util.concurrent.CompletableFuture$Signaller)
    at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:194)
    at java.util.concurrent.CompletableFuture$Signaller.block([email protected]/CompletableFuture.java:1796)
    at java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3128)
    at java.util.concurrent.CompletableFuture.waitingGet([email protected]/CompletableFuture.java:1823)
    at java.util.concurrent.CompletableFuture.get([email protected]/CompletableFuture.java:1998)
    at jdk.internal.net.http.HttpClientImpl.send([email protected]/HttpClientImpl.java:541)
    at jdk.internal.net.http.HttpClientFacade.send([email protected]/HttpClientFacade.java:119)
        25
    lzxz1234   31 天前
    8 -> 11,开发环境,尝试多次,每次坚持几个月就退回去了。。。
        26
    liujialongstar   31 天前
    还在用 7
        27
    yizmaoaa   31 天前
    我是 zulu 的 12 目前没有发现问题
        28
    yjxjn   31 天前
    @Rwing 我们前一阶段才升级到 8.哈哈哈
        29
    smilekung   31 天前 via Android
    11.0.1 httpclient 有一个 bug 会导致栈溢出 最新版已经修复 所以还是等几个版本修修 bug 吧
        30
    zzf2019   30 天前
    @echo1937 下面的人已经说完了,就是 httpclient 这个包大有问题
        31
    echo1937   30 天前
    @zzf2019 #30 那还是继续用第三方 HttpClient 吧
        32
    cco   30 天前
    openjdk8 目前很稳。
        33
    0xljh   30 天前
    用 adoptopenjdk11
        34
    Aresxue   30 天前
    生产用 8 吧,如果用户量不大而且稳定性要求不高(项目本身就是技术升级试点)可以试试 11,类型推断还不错
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2208 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 10:39 · PVG 18:39 · LAX 03:39 · JFK 06:39
    ♥ Do have faith in what you're doing.