Java.net.SocketException: TCP连接重置

3
最近我将我的Java服务从AWS迁移到了GCP。我其中一个服务通过HTTP(java HttpClient)与其他服务(GCP中的服务)进行交互。出现了一种非常奇怪的情况,就是我会随机收到"java.net.SocketException: Connection reset"的错误,例如: ``` Caused by: java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:210) ~[na:1.8.0_151] at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[na:1.8.0_151] at sun.security.ssl.InputRecord.readFully(InputRecord.java:465) ~[na:1.8.0_151] at sun.security.ssl.InputRecord.read(InputRecord.java:503) ~[na:1.8.0_151] at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:983) ~[na:1.8.0_151] at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:940) ~[na:1.8.0_151] at sun.security.ssl.AppInputStream.read(AppInputStream.java:105) ~[na:1.8.0_151] ``` 这在AWS上从未发生过,但在GCP上相同的代码中发生了。对我而言,似乎机器配置存在问题。我已经尝试更换机器,但没有成功。有人能提供可能出错的原因吗?

也许你应该检查一下 Java JDK 版本? - Vasanth Raghavan
Java JDK版本在GCP和AWS中是相同的。 - Shubham Sharma
这项服务部署在哪里?在GCE实例中吗?还是在App Engine中? - Mangu
现在两个服务都在GCE上运行。之前它们在AWS上。 - Shubham Sharma
1个回答

0

你是否创建了防火墙规则以接受来自一个实例到另一个实例的传入流量?


1
是的,防火墙规则已经设置好了。如果这是防火墙问题,每个HTTP请求都会产生错误。但正如我在问题中提到的那样,java.net.SocketException会在某些请求中随机发生而不是全部。 - Shubham Sharma
1
我也遇到了同样的问题。你能告诉我你是如何解决这个问题的吗? - user1142317

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接