【JDK11 升级 JDK17 最全实践干货来了】移除 - XX:ConcGCThreads,行云部署下 JVM 参数配置需要清除
文章插图
6.5.2、不同中间件所需启动参数
升级 JDK17 后 , 项目启动时可能会遇到如下两种类型的异常:
1、cannot access class sun.util.calendar.ZoneInfo (in module java.base) because module java.base does not export sun.util.calendar to unnamed module @0x2611f533
2、Unable to make field final int java.math.BigInteger.signum accessible: module java.base does not "opens java.math" to unnamed module @525f1e4e
异常原因:
自从 JDK9 中引入了模块化功能后,再到 JDK17 , 对于包扫描和反射的权限控制更加的严格 。常见的库比如(Spring)大量用到包扫描和反射,所以常出现此错误 。
解决方案:
一个粗暴的解决办法是将没开放的 module 强制对外开放,即保持和 Java9 之前的版本一致 。
- --add-exports 导出包 , 意味着其中的所有公共类型和成员都可以在编译和运行时访问 。
- --add-opens 打开包 , 意味着其中的所有类型和成员(不仅是公共类型)都可以在运行时访问 。
参考: https://stackoverflow.com/questions/44056405/whats-the-difference-between-add-exports-and-add-opens-in-java-9
SGM 需要加入:
--add-opens java.management/java.lang.management=ALL-UNNAMED
--add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED
--add-opens java.management/sun.management=ALL-UNNAMED
R2M 需要加入:
--add-opens java.base/java.time=ALL-UNNAMED
Ducc 需要加入:
--add-opens java.base/java.util.concurrent=ALL-UNNAMED
--add-opens java.base/java.util.concurrent.locks=ALL-UNNAMED
--add-opens java.base/java.security=ALL-UNNAMED
--add-opens java.base/jdk.internal.loader=ALL-UNNAMED
--add-opens java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED
--add-opens java.base/java.net=ALL-UNNAMED
--add-opens java.base/sun.nio.ch=ALL-UNNAMED
AKS 需要加入:
--add-exports java.base/sun.security.action=ALL-UNNAMED
--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.math=ALL-UNNAMED
--add-opens java.base/java.util=ALL-UNNAMED
--add-opens java.base/sun.util.calendar=ALL-UNNAMED
6.6、启动后的验证
1. 推荐先升级 JDK11 , 再到 JDK17 , 一边升级一边进行验证观察
2. 观察日志是否有异常,特别是上面说到的启动时异常
3. 观察监控类软件,比如 SGM、UMP 等监控是否正常
4. 推荐逐步有序切量,并做好常态化压测,防止影响核心业务
5. 升级完成后,最好能做个全流程的功能测试 , 防止功能异常
7、总结
1、升级后,除了可以使用新的语法特性 , 最大的亮点是可以使用亚毫秒级停顿的 GC 性能(至少百倍的 GC 性能提升),所以 强烈建议升级到 JDK17
2、整个升级过程并不复杂 , 主要涉及到中间件版本的升级和启动参数的配置如果还停留在 JDK8,推荐先升级 JDK11,再到 JDK17,具体升级步骤先参考我的上篇文章 “JDK8 升级 JDK11 最全实践干货来了” , 再参考本章中的升级步骤 。
希望以上分享可以给大家带来实际的帮助,升级过程中如果遇到问题,欢迎大家在评论区回复 。
作者:京东科技 曲振富
来源:京东云开发者社区 转载请注明来源
推荐阅读
- 曾志伟为缅北电诈家族成员庆生风波升级!知情人曝其情况危险
- 苹果11升级ios16后续有电量百分比
- 恭喜!72岁TVB知名老戏骨疑升级当爸爸,小36岁女友被曝怀孕
- 杨幂马面裙风波升级!吃饺子、喝豆汁营销自己弘扬中华文化引众怒
- 杨幂799元马面裙风波升级!被嘲爱蹭又外行,模特上身效果太打脸
- 绯闻再次升级小三实锤这一次,36岁的江疏影再次被提到
- 《歌手2024》确定回归,8位首发歌手,每周直播,升级为国际版
- “包养门”事件再升级!屋里藏着两个大学生却说是自己“干儿子”
- 刘涛私生女事件升级!孩子更多细节被曝,生父疑似是富商
- TVB知名小生疑升级当爸!日籍妻子现身腹部凸起,网民称孕味足