我们正在使用
AwsCrypto aws java sdk
用于加密和解密。我们遵循中提到的模式
this aws doc
用于在启用数据密钥缓存的情况下使用相同的。
对于一些请求,我看到间歇性TLS握手
千米
服务器正在花费时间(根据日志,在重试建立连接之前,最长50秒),但还有其他类似的请求,TLS握手发生在
ms
.
根据日志,套接字连接超时设置为
2000 ms
但由于某种原因,连接超时没有发生,线程被困在等待握手响应的时间超过30秒,范围高达50秒。
这是一个更大的问题,因为线程被无故阻塞,而且随着我们的服务规模的扩大,它可能会成为一个瓶颈,我们希望解决这些由于kms引起的延迟峰值。
相关日志
*.*.awssdk.http.apache.internal.conn.SdkTlsSocketFactory: Connecting socket to kms.us-east-1.amazonaws.com/52.119.199.83:443 with timeout 2000
2023-12-09T14:26:04.993Z *.*.awssdk.http.apache.*.conn.SdkTlsSocketFactory: Starting handshake
2023-12-09T14:26:35.029Z *.*.awssdk.request: Retryable error detected. Will retry in 43ms. Request attempt number 2
可以看出,握手启动后,连接在重试前30秒内没有断开。但是连接到套接字的超时是
2sec
从第一个日志中可以看出
是否存在导致此问题或其他问题的错误配置?
我们的服务是基于云服务器的服务usingn aws sdk 1.x
附言
对于那些投票结束的人,请就为什么这个问题应该结束发表评论。如果有可以接受的理由,我很乐意亲自去做。