Amazon web services 哪个服务的响应时间较短?SQS vs DynamoDB
好的,我很久以前使用AWS Lambda构建了一个无服务器应用程序。我目前的申请流程如下: API网关(1)→ Lambda函数(2)→ SQS(3)→ Lambda函数(4)→ 发电机B(5) 现在,有一些考虑:Amazon web services 哪个服务的响应时间较短?SQS vs DynamoDB,amazon-web-services,aws-lambda,amazon-dynamodb,amazon-sqs,Amazon Web Services,Aws Lambda,Amazon Dynamodb,Amazon Sqs,好的,我很久以前使用AWS Lambda构建了一个无服务器应用程序。我目前的申请流程如下: API网关(1)→ Lambda函数(2)→ SQS(3)→ Lambda函数(4)→ 发电机B(5) 现在,有一些考虑: 客户端将向我的API(1)发送请求 API事件附加了一个lambda函数(2),因此它将接收API请求并对其进行处理 现在,这里是问题的切入点。在处理请求之后,必须将该处理的结果插入DynamoDB(5)。目前,我将其发送到SQS(3)并返回客户端发送的HTTP请求的响应 尽管请求已
- 直接在DynamoDB上插入更快
- 直接插入DynamoDB不会更快,但差异可以忽略不计
但是,如果先发送到SQS的响应时间更长,我可能会保持此流。如果在调用之间保持连接打开,我看到DynamoDB的响应时间低于10ms。我没有关于SQS延迟的数据
关于成本,您基本上是将lambda成本翻倍,并添加任何SQS成本。如果您使用按需写操作,SQS的成本比DynamoDB高33%。您问SQS是否比DynamoDB便宜,但在您的流程中,您同时使用这两种方法……当然,只使用API网关(1)会更便宜→ Lambda函数(2)→ 发电机B(3) 就性能而言,众所周知,DynamoDB对于小的、频繁的写入速度很快,所以我不太担心这一点
SQS和DynamoDB响应时间之间的差异应该非常相似,除非您的DynamoDB容量配置不正确,在这种情况下,您可能会遇到节流问题。如果配置的容量不是您关心的问题,那么我建议在Lambda函数中使用计时器测试SQS和DynamoDB(或使用AWS x-ray),并确定性能差异是否值得为Deiv和Bocks响应添加SQS和额外Lambda函数的成本 让我来分享以下额外的观点,以帮助您改进建议的设计 如果您需要严格遵守异步处理,即将请求处理与响应分离,那么请坚持使用基于SQS的解决方案 如果请求处理延迟是一致的,并且API端点的使用者可以接受,那么我建议使用Diev推荐的解决方案来处理请求,持久化到DynamoDB,并将响应返回到客户端。作为奖励,您将获得较低的AWS账单(如上所述) DynamoDB设计用于提供“一致”P99(即第99百分位)延迟,单个项目读取<10ms,单个项目写入<20ms
希望这有帮助 是的,我使用这两种方法是因为请求在第一个Lambda函数返回,所以如果SQS的响应时间较短,那么使用它然后在后台发送到DynamoDB会更快。编辑的答案。感谢您的回答。实际上,我不需要在后台处理请求。我只是想尽快回复你的请求。这就是我提出这个问题的原因。显然,DynamoDB的速度足够快,可以直接使用,所以我打算将我的设计更改为这种更简单、更便宜的方法。