1

我正在使用适用于 DynamoDB 的 Amazon Java SDK 客户端,GetItem 上的延迟大约为 100 毫秒,平均为 256 毫秒,以广泛传播密钥。在 cloudwatch 中大约是 8-10 毫秒。

我尝试使用 threadlocal 为每个线程启动新的 AmazonDynamoDBClient,希望它位于某些缓存中。我尝试从 BasicAWSCredentials 切换到 STSSessionCredentialsProvider 跳跃令牌安全检查更快。但是我在 EC2 实例和办公室上仍然有同样非常高的延迟。

什么会导致客户端出现这种延迟?

4

1 回答 1

2

cloudwatch 中的 8-10ms 延迟是服务端延迟,即您的请求到达亚马逊服务器所需的时间。这不包括整体网络延迟,因为无法在服务器端进行测量。

您看到的额外延迟是您和亚马逊之间的网络延迟。在同一区域中使用 EC2 和 DynamoDB时,您应该会看到约 1 毫秒的延迟。您提到使用 EC2,您确定您的 EC2 实例与您的 DynamoDB 表位于同一区域吗?

于 2013-09-03T23:35:37.443 回答