赖的 Netty 和 Javassist 等都需要升级,Netty 版本较低会有内存泄漏问题。
我们使用的依赖版本
给大家参考下我们升级后的依赖版本
<properties>
<!-- 基础组件版本 Start -->
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven-compiler-plugin.version>3.11.0</maven-compiler-plugin.version>
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
<jacoco-maven-plugin-version>0.8.10</jacoco-maven-plugin-version>
<maven-assembly-plugin-version>2.4.1</maven-assembly-plugin-version>
<maven-dependency-plugin-version>3.1.0</maven-dependency-plugin-version>
<profiles.dir>src/main/profiles</profiles.dir>
<springboot-version>2.7.13</springboot-version>
<log4j2.version>2.18.0-jdsec.rc2</log4j2.version>
<hibernate-validator.version>5.2.4.Final</hibernate-validator.version>
<collections-version>3.2.2</collections-version>
<collections4.version>4.4</collections4.version>
<netty.old.version>3.9.0.Final</netty.old.version>
<netty.version>4.1.36.Final</netty.version>
<javassist-version>3.29.2-GA</javassist-version>
<guava.version>23.0</guava.version>
<mysql-connector-java.version>5.1.29</mysql-connector-java.version>
<jmh-version>1.36</jmh-version>
<caffeine-version>3.1.6</caffeine-version>
<fastjson-version>1.2.83-jdsec.rc1</fastjson-version>
<fastjson2-version>2.0.35</fastjson2-version>
<roaringBitmap.version>0.9.44</roaringBitmap.version>
<disruptor.version>3.4.4</disruptor.version>
<jaxb-impl.version>2.3.8</jaxb-impl.version>
<jaxb-core.version>2.3.0.1</jaxb-core.version>
<activation.version>1.1.1</activation.version>
<!-- 基础组件版本 End -->
<!-- 京东中间件版本 Start -->
<ump-version>20221231.1</ump-version>
<ducc.version>1.0.20</ducc.version>
<jdcds-driver-alg-version>2.21.1</jdcds-driver-alg-version>
<jdcds-driver-version>3.8.3</jdcds-driver-version>
<jmq.version>2.3.3-RC2</jmq.version>
<jsf.version>1.7.6-HOTFIX-T2</jsf.version>
<r2m.version>3.3.4</r2m.version>
<!-- 京东中间件版本 End -->
</properties>
JVM 启动参数升级
远程 DEBUG 参数有所变化:
JAVA_DEBUG_OPTS=" -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000 "
打印 GC 日志参数的变化,我们在预发环境开启了日志进行观察:
JAVA_GC_LOG_OPTS=" -Xlog:gc*:file=/export/logs/gc.log:time,tid,tags:filecount=10:filesize=10m "
使用了 ZGC 的部分 JVM 参数:
JAVA_MEM_OPTS=" -server -Xmx12g -Xms12g -XX:MaxMetaspaceSize=256m -XX:MetaspaceSize=256m -XX:MaxDirectMemorySize=2048m -XX:+UseZGC -XX:ZAllocationSpikeTolerance=3 -XX:ParallelGCThreads=8 -XX:CICompilerCount=3 -XX:-RestrictContended -XX:+AlwaysPreTouch -XX:+ExplicitGCInvokesConcurrent -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/export/logs "
内部依赖需要访问 JDK 模块,如 UMP、JSF、虫洞、MyBatis、DUC