我在节点js中构建了一个API服务器,它应该在重负载下工作。我基本上想要以小批量(每个约10个项目)累积传入的插入请求,并且一旦填充了批次,就将这些项目插入到数据库中。目前,我正在使用Amazon SQS作为我的队列服务,以及我设计的一个单独的队列使用者应用程序。但是,我想也许我可以在本地累积消息,然后直接从API中插入批处理。这将消除与远程队列服务通信的开销,并且由于批量很小,API服务器的内存不会被夸大。你怎么看?优点和缺点?api服务器 - 队列服务vs本地迷你队列
0
A
回答
0
您提到在您的服务器上负载很重。如果您尝试实施队列来收集传入的请求,那么它最终可能会消耗服务器上的大量内存。在你有自我扩展能力之前,这总是一个风险。您应该考虑以下内容: - 总批量大小 - 每个请求的最大大小 这将帮助您防止内存不足问题。
其他注意事项应该是: - 它是分布式/集群环境吗?如果是,那么请考虑一下2个请求是否有关联,并且你想在一个服务器上将它们组织在一起? - 定时器:你的队列是否有定时器机制。我可以看到,我没有数据库插入,所以有插入不能等待一批完成写入数据库的情况。如果是,则实现定时器以保持(不管批次是否已满) - 检查服务器是否出现尖峰攻击,您的排队机制是否能够很好地处理它?任何事情都像钉钉子的政策。 - 系统故障是否可能会丢失部分批量插入数据? - 我可以看到,通过这样做,您正尝试为远程通话节省通话时间。但是,如果你阻止请求获得持续(批量),你真的关心过境时间(真正的关注)?如果不是那么SQS是更可靠的高效解决方案&。
除了这些,尝试防止您的系统从SQL注入攻击。
相关问题
- 1. Beanstalkd队列服务器
- 2. WCF服务不是从本地队列
- 3. 服务:任务队列
- 4. Azure队列存储vs WCF服务
- 5. 没有本地消息队列服务器的远程消息队列
- 6. 集成api服务与消息队列
- 7. 从队列服务Java Applets?
- 8. 网络服务和队列
- 9. 消息队列Windows服务
- 10. Glassfish服务器JMS独立队列
- 11. Meteor.js服务器方法队列
- 12. 创建服务器处理队列
- 13. 服务器端循环轮询队列
- 14. ActiveMQ的队列与服务器
- 15. 任务队列VS. URLFetch
- 16. Azure的服务总线队列主题VS队列网络/辅助角色
- 17. SQL Server队列VS MSMQ(异步TCP服务器)
- 18. 任务队列Java API
- 19. 任务队列的Java API
- 20. 团队基础服务器
- 21. 团队基金服务器
- 22. REST服务前的请求队列
- 23. MSMQ服务不读取队列
- 24. 音频队列服务 - 录制
- 25. Azure服务总线队列计数
- 26. Amazon SQS(简单队列服务)速度?
- 27. 推荐开源邮件队列服务
- 28. 消息队列服务不可用
- 29. 设置服务总线队列超时
- 30. Azure服务总线队列ScheduledEnqueueTimeUtc延迟