gpt4 book ai didi

node.js - 设计 Nodejs Web 应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 22:31:45 25 4
gpt4 key购买 nike

我目前正在构建一个网络应用程序来显示远程机器的实时仪表板。我正在尝试使用 Nodejs 来实现该系统,并且希望对我关于如何实现它的想法提出批评。

该应用程序有两个主要目标:

1.) 实时显示机械状态,大约每分钟更新一次

2.) 每 15 分钟将机器状态保存到数据库中。

为了访问数据,我需要向第三方供应商发出 API 请求,以从他们的数据库中提取数据。每台机器我需要发出大约 6 个请求,到今年年底我将不得不同时支持大约 20 台机器。综合考虑,我需要每分钟发出大约 120 个请求才能保持机器的最新信息。

使用 Web 应用程序的用户在登录时只能看到一部分计算机。然而,某些机器将在不同用户之间共享,因此我宁愿为所有机器数据构建一个缓存,每分钟刷新一次,然后再为同时查看同一台机器的用户复制 API 调用。只向每个用户发送与其相关的数据部分。此外,这对于数据记录目的也很方便,因为当我想保存数据时,我只需保存整个缓存即可。

我担心的一个问题是能否及时完成数据获取 API 请求以便重新显示数据。我知道我可以使用异步库在并行调用中收集数据,但我担心请求在生成第二次更新之前无法及时完成,从而导致请求堆积。一种选择是我可以让每个 api 请求独立于其他请求将其数据发送到前端,但我希望能够批量更新所有内容。

我在构建系统时遇到的另一个问题是 socket.io 是否是满足我需求的有用资源。我知道该库可以帮助您生成实时应用程序,这是我需要做的,但从我所读到的内容来看,socket.io 似乎是为了共享所有用户的所有更新而设计的,而不是仅仅向每个用户发送部分更新。我可以在应用程序的前端添加一些代码来定期请求更新,而不是使用 socket.io 发送服务器驱动的更新。使用此解决方案意味着我还可以让每个客户端简单地请求他们需要的数据。不过,我仍然很好奇该库是否可以提供对开发该项目有用的任何内容。

我最后关心的是应用程序的扩展。年底后,我需要监控越来越多的机器,每增加一台机器,我需要获取和存储的数据量也会增加。如果有人对如何尽早开始设计具有良好扩展性的系统有任何建议,我很想听听。

感谢任何反馈。谢谢。

最佳答案

@danday74 的好答案...

现在重新启动,我会:

  • 使用像 Meteor 或 Feathers.Js 这样的东西以获得实时、支持休息、可扩展的基础。

  • 使用JWT用于身份验证,因为它易于移植、测试和扩展。

  • 使用易于部署且易于扩展的平台提供商,例如 DigitalOcean、Azure、Heroku 等。DigitalOcean 上的 Dokku 特别强大!

关于node.js - 设计 Nodejs Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36067161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com