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

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

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

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

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

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

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

    其余的没发现啥问题,用的 amazon corretto
    guisheng
        22
    guisheng   151 天前
    11 可以自己创建项目玩,不建议直接上生产
    xuanbg
        23
    xuanbg   151 天前
    上 11 的话,很多 8 的代码都要改。。。然后就怂了
    qwerthhusn
        24
    qwerthhusn   151 天前
    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)
    lzxz1234
        25
    lzxz1234   151 天前
    8 -> 11,开发环境,尝试多次,每次坚持几个月就退回去了。。。
    liujialongstar
        26
    liujialongstar   151 天前
    还在用 7
    yizmaoaa
        27
    yizmaoaa   151 天前
    我是 zulu 的 12 目前没有发现问题
    yjxjn
        28
    yjxjn   151 天前
    @Rwing 我们前一阶段才升级到 8.哈哈哈
    smilekung
        29
    smilekung   151 天前 via Android
    11.0.1 httpclient 有一个 bug 会导致栈溢出 最新版已经修复 所以还是等几个版本修修 bug 吧
    zzf2019
        30
    zzf2019   150 天前
    @echo1937 下面的人已经说完了,就是 httpclient 这个包大有问题
    echo1937
        31
    echo1937   150 天前
    @zzf2019 #30 那还是继续用第三方 HttpClient 吧
    cco
        32
    cco   150 天前
    openjdk8 目前很稳。
    0xljh
        33
    0xljh   150 天前
    用 adoptopenjdk11
    Aresxue
        34
    Aresxue   150 天前
    生产用 8 吧,如果用户量不大而且稳定性要求不高(项目本身就是技术升级试点)可以试试 11,类型推断还不错
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1093 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 33ms · UTC 19:12 · PVG 03:12 · LAX 11:12 · JFK 14:12
    ♥ Do have faith in what you're doing.