我有一个 nodejs 开发服务器。我目前正在 AWS EC2 micro AMI 上运行。我有一个硬件设备,它通过套接字不断向该服务器提交数据。然后,服务器调用 API,处理后提交从硬件设备收到的数据并将其存储在本地 Mongodb 实例中。设备每 5 秒提交一次数据。API 当前驻留在同一台服务器上的不同端口上,稍后将移动到另一台服务器。我的服务器在 3 次 API 调用后挂起。
- 提交套接字数据时每5秒进行一次API调用可以吗?
- 我是否应该实现某种排队机制来收集套接字数据并处理它?
- 由于 API 不断被触发,亚马逊是否会将其视为 DDOS 攻击?
- 难道我做错了什么?
在以后的运行中,我的套接字服务器、API 服务器和 mongodb 实例将拥有自己的专用服务器。目前我正在使用开发环境。
答案1
EC2 和 AWS 基础设施通常设计用于处理高流量。从请求频率来看,您的 1 个请求/5 秒并不算多,也算不上恶意请求。
现在,您提出的 3 次请求后服务器挂起的问题是一个单独的问题;听起来应用程序本身需要优化。如果您的数据处理时间太长,那么听起来亚马逊的 SQS 服务确实会让您受益;让您的侦听器监听端口并立即写入 SQS 并返回。让一个单独的进程从 SQS 读取、处理并写入 Mongo。SQS 是每月前 100 万个请求免费,按每 5 秒 1 个请求的速度计算,您每月将赚取 535,680 美元。