我在節點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延遲