此套接字超时异常需要帮助,在尝试读取AWS SQS队列中的消息时,我会不断地间歇性地。
过程:
问题:
我的应用程序间歇性地在SQS receiveMessage请求中得到以下异常:
com.amazonaws.http.AmazonHttpClient:executeHelper:492 - main - INFO :
Unable to execute HTTP request: Read timed out
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method) ~[?:1.8.0_121]
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[?:1.8.0_121]
at java.net.SocketInputStream.read(SocketInputStream.java:171) ~[?:1.8.0_121]
at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[?:1.8.0_121]
at sun.security.ssl.InputRecord.readFully(InputRecord.java:465) ~[?:1.8.0_121]
at sun.security.ssl.InputRecord.read(InputRecord.java:503) ~[?:1.8.0_121]
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973) ~[?:1.8.0_121]
at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:930) ~[?:1.8.0_121]
通过从控制台检查SQS队列,我发现在失败期间,从队列中读取了一条消息(正在运行的消息),但在应用程序端未收到。这导致消息在可见性超时时间段(1小时)内被锁定,从而导致消息处理延迟。
其他详细信息:
非常感谢您提供有关如何进一步解决或调试此问题的帮助。让我知道是否需要更多详细信息。