如何解决Java Web 应用程序负载测试使用 OpenJDK 11.0.2 失败,但适用于采用 OpenJDK 11.0.9.1
我正在对我有一个 Java Web 应用程序的问题进行故障排除。 Web 应用程序部署在 Tomcat 中。 Web 应用程序使用 java.net.HttpURLConnection 调用后端服务器。 当此应用程序进行负载测试时,我遇到了一个问题 我从应用程序到后端服务器的调用收到以下异常,当我尝试获取 Http 调用的响应代码时,错误是 SSL 异常,这如果我使用 OpenJDK 进行 5% 的调用,就会发生这种情况
openjdk version "11.0.2" 2018-10-16
OpenJDK Runtime Environment 18.9 (build 11.0.2+7)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+7,mixed mode)
javax.net.ssl.SSLException: Received fatal alert: internal_error
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:129)
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:308)
at java.base/sun.security.ssl.Alert$AlertConsumer.consume(Alert.java:279)
at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:181)
at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:164)
at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1152)
at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1063)
at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:402)
at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:567)
at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1581)
at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1509)
at java.base/java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:527)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:329)
我通过更改参数(堆大小、垃圾收集、JVM 选项、SSL 连接器、证书)解决了这个问题,但没有帮助。结果是,当使用 Adpopt Open JDK 时,应用程序在相同的负载测试下运行良好
openjdk version "11.0.9.1" 2020-11-04
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9.1+1)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9.1+1,mixed mode)
能否请我指点一下我可以在 OpenJDK 和 AdoptOpenJDK 之间进行哪些检查。我理解在这种情况下很难指出问题。
这里的挑战是该应用程序是与客户共享的,我们提到我们支持 Java 11,因此理想情况下,无论使用 AdaptOpenJDK 还是 OpenJDK,它都应该提供相同的性能。
对此问题的任何指示将不胜感激。
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。