生产上的高峰流量处的java.net.SocketTimeoutException

时间:2019-05-17 07:33:23

标签: java crashlytics connection-timeout akamai socket-timeout-exception

我们在生产方面一直面临这个问题。现在,每当将通知发布到所有移动应用程序和桌面应用程序时,就会发生此问题。在通知中,有一幅图像被缓存在CDN(Akamai)中。因此,许多用户都收到以下异常。我试图找出问题所在,但很多人说这可能是由于 设备上的网络问题,但我的问题是XXXX.XXXX.com的DNS已解决为akamai ip(117.239.141.27)。因此,这应该不成问题。此外,我和Akamai的人一起工作,他们最终找不到任何问题。所以,我有以下问题:

1)我如何找出导致此问题的原因?其次,有人在高峰流量时遇到过类似的生产问题吗?

2)如下面的堆栈跟踪所述,我是从crashlytics获得的。在少数情况下,我们会获得专用客户端IP(192.168.1.33),为什么会这样呢? 不应将客户端的公共IP登录到crashlytics中。

Caused by java.net.SocketTimeoutException: failed to connect to XXXX.XXXX.com/117.239.141.27 (port 80) from /192.168.1.33 (port 50974) after 15000ms
       at libcore.io.IoBridge.connectErrno(IoBridge.java:185)
       at libcore.io.IoBridge.connect(IoBridge.java:129)
       at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:137)
       at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
       at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
       at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
       at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
       at java.net.Socket.connect(Socket.java:621)
       at com.android.okhttp.internal.Platform.connectSocket(Platform.java:145)
       at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:1416)
       at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:1368)
       at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:219)
       at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:142)
       at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:104)
       at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:392)
       at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:325)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:488)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:434)
       at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:565)
       at com.squareup.picasso.UrlConnectionDownloader.load(UrlConnectionDownloader.java:125)
       at com.squareup.picasso.NetworkRequestHandler.load$71fa0c91(NetworkRequestHandler.java:6)
       at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:72)
       at com.XXXXX.XXXXX.utils.AppNotificationHandler.getTabCategoryIdForScreen(AppNotificationHandler.java:82)
       at com.XXXXX.XXXXX.utils.AppNotificationHandler.handleExtras(AppNotificationHandler.java:806)
       at com.XXXXX.XXXXX.fcm.FCMIntentService.onMessageReceived(FCMIntentService.java:112)
       at com.google.firebase.messaging.FirebaseMessagingService.zzd(FirebaseMessagingService.java:394)
       at com.google.firebase.iid.zzg.run(zzg.java:26)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at com.google.android.gms.common.util.concurrent.zza.run(zza.java:7)
       at java.lang.Thread.run(Thread.java:764)

0 个答案:

没有答案