【发布时间】:2018-08-04 07:12:27
【问题描述】:
我正在开始一个项目,我想在其中创建一个显示实时航班信息和状态的网站。我们都在机场看到了这一点。这里给出了一个例子 - http://www.computronics.biz/productimages/prodairport4.jpg。如您所见,此信息不断变化。该网站将与后端 api 对话,而此后端 api 将与 数据库 对话。现在重要的部分是数据库中的航班信息将由航空公司自己更新。可能有几家航空公司,他们将分别更新他们的数据。我画了一张图上传到这里-https://imgur.com/a/ssw1S。
现在这些航空公司显然会有一个接口(网站与一些后端 API 对话),他们将通过该接口更新数据库。
现在这是我尝试解决的问题。我们需要某种触发器,这样如果任何航空公司在当前时间 - 1 小时到当前 + 4 小时之间更新数据库中的航班详细信息(网站只会显示几个小时的航班),我们需要调用 web api 和然后将更新实时发送到网站。 用户根本不能刷新页面。同时网站需要很好地扩展,即如果网站上有100万用户,并且数据库在正确的时间范围内有更新,所有 100 万用户的网站都应该在相当长的时间内得到更新。
我做了一些研究,看起来我们需要一种基于事件的方法。例如 - 我们需要创建一个函数(AWS lambda 或 Azure 函数),只要在正确的时间范围内数据库(例如 Dynamo DB)有更新,就应该调用该函数。这个函数然后应该调用一个 API,然后应该通过 web socket 技术更新网站。
我不是在寻找任何代码,而只是寻找一些关于如何以可扩展的方式解决此问题的替代建议。还有我们如何测试可扩展性?
【问题讨论】:
-
准备好了。火。瞄准。
-
航空公司需要直接更新数据库还是可以通过航空公司调用的API抽象出来?
-
@dashmug - 哈哈是真的:)
-
@UsmanMutawakil - 他们将拥有一个与 API 对话的用户界面,该 API 将更新一些数据库(sql server、dynamo db)等。
-
@VVV 我明白了。我刚刚发布了一个高级解决方案,其中包含关于可扩展性测试的部分,我的中心主题是您不需要 lambda 或 azure 函数。
标签: amazon-web-services websocket aws-lambda scalability azure-functions