Har*_*Cho 0 amazon-web-services amazon-dynamodb
根据https://github.com/aws/aws-sdk-go/issues/2984,Amazon DynamoDB 似乎不支持 HTTP/2。还有其他服务支持 HTTP/2,但不支持 Amazon DynamoDB。
我测试了https://docs.aws.amazon.com/general/latest/gr/ddb.html列表中的几个端点,它们似乎不支持它。
$ curl -v --http2-prior-knowledge https://dynamodb.us-east-1.amazonaws.com
* Trying 52.119.233.242:443...
* TCP_NODELAY set
* Connected to dynamodb.us-east-1.amazonaws.com (52.119.233.242) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use http/1.1
* Server certificate:
* subject: CN=dynamodb.us-east-1.amazonaws.com
* start date: Dec 9 00:00:00 2020 GMT
* expire date: Dec 8 23:59:59 2021 GMT
* subjectAltName: host "dynamodb.us-east-1.amazonaws.com" matched cert's "dynamodb.us-east-1.amazonaws.com"
* issuer: C=US; O=Amazon; OU=Server CA 1B; CN=Amazon
* SSL certificate verify ok.
> GET / HTTP/1.1
> Host: dynamodb.us-east-1.amazonaws.com
> User-Agent: curl/7.68.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: Server
< Date: Fri, 13 Aug 2021 23:03:18 GMT
< Content-Type: text/plain
< Content-Length: 42
< Connection: keep-alive
< x-amzn-RequestId: B0M1S6B7509A9FS62EMN7MV8QJVV4KQNSO5AEMVJF66Q9ASUAAJG
< x-amz-crc32: 3128867991
<
* Connection #0 to host dynamodb.us-east-1.amazonaws.com left intact
Run Code Online (Sandbox Code Playgroud)
有谁知道这是否属实或为什么他们不支持?在他们的文档中找不到它。
DynamoDB 目前似乎确实不支持 HTTP/2。我认为没有充分的理由“为什么”。这只是亚马逊没有做的事情,我猜他们会做的做的,因为他们的许多其他服务以及他们的库都支持 HTTP/2。
\n一年多前,我写了一篇博文,比较DynamoDB API与 Cassandra 和 Scylla 的CQL API。我提到的 DynamoDB API 的缺点之一就是缺乏 HTTP/2 支持,这意味着您需要打开与想要发出的并发请求数量一样多的连接,并且会产生开销。我说了:
\n\n\nDynamoDB API 必须通过添加特殊的多请求操作来解决传输\xe2\x80\x99 缺乏多路复用的问题,即\xe2\x80\x94
\nBatchGetItem和BatchWriteItem\xe2\x80\x94 每个都可以执行多个操作并返回重新排序的响应。然而,这些解决方法比对多路复用的通用支持更加有限且不太方便。\n如果 DynamoDB 支持 HTTP/2,它也会获得多路复用,甚至在处理大型请求或响应时比 CQL 更具优势:CQL 协议不能将单个请求或响应分解为多个块,但 HTTP/2 确实做到了这一点,避免了同一连接上的大请求之后发生的小请求出现较大延迟。我们预测未来 DynamoDB 将支持 HTTP/2。亚马逊的其他一些服务已经这样做了。
| 归档时间: |
|
| 查看次数: |
1100 次 |
| 最近记录: |