什么是处理高流量的最佳服务器解决方案?

时间:2017-07-26 10:26:35

标签: amazon-web-services aws-lambda serverless-framework

要求

应该有一个Web服务,它将一些数据插入表中。 该服务应该能够处理每秒800到900个请求。我们只需获取POST请求,然后将数据插入表中。

我们提出的解决方案

我们考虑使用亚马逊无服务器解决方案 - AWS Lambda

  • 在Amazon RDS中创建MariaDB
  • 创建Amazon Lambda函数以访问数据库并插入数据(可能在Node.js中)
  • 在Amazon API Gateway中配置POST方法以访问我们的Lambda函数,然后我们调用url来访问Lambda函数

我们的解决方案能否达到要求,流程中的任何瓶颈或我们使用的服务?

有没有更好的解决方案来处理这种流量?

附加要求

我们需要分析通过Lambda函数收集的数据。 为此,我们计划将数据移动到另一个表中,此数据迁移部分每天发生一次(可能在非高峰期)。处理此数据迁移的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

您的设计似乎是API网关 - > Lambda - >数据库中。

亚马逊API网关具有高度可扩展性,可轻松满足您的需求。您还可以实施限制规则,以确保客户端不会滥用您的API。

AWS Lambda 也具有高度可扩展性。默认限制为1000个并发Lambda函数执行,但如果超出此数量,它们将自动排队(例如,如果您的函数需要几秒钟才能完成)。

通常, SQL数据库无法保证性能。查询可以是简单的也可以是复杂的,如果不运行大量的负载测试,很难预测性能。

但是, Amazon DynamoDB 是一个NoSQL数据库,您可以在其中精确配置每秒所需的读取和写入次数。它还允许超出此限制的有限突发以及自动缩放以在一天内改变性能的能力。

缺点是难以对NoSQL数据库中的数据进行性能分析,因此您可能希望将其导出到传统的SQL数据库(例如MySQL)或 Amazon Elasticsearch Service上的ELK堆栈< /强>