我在節點js中構建了一個API服務器,它應該在重負載下工作。我基本上想要以小批量(每個約10個項目)累積傳入的插入請求,並且一旦填充了批次,就將這些項目插入到數據庫中。目前,我正在使用Amazon SQS作爲我的隊列服務,以及我設計的一個單獨的隊列使用者應用程序。但是,我想也許我可以在本地累積消息,然後直接從API中插入批處理。這將消除與遠程隊列服務通信的開銷,並且由於批量很小,API服務器的內存不會被誇大。你怎麼看?優點和缺點?api服務器 - 隊列服務vs本地迷你隊列
0
A
回答
0
您提到在您的服務器上負載很重。如果您嘗試實施隊列來收集傳入的請求,那麼它最終可能會消耗服務器上的大量內存。在你有自我擴展能力之前,這總是一個風險。您應該考慮以下內容: - 總批量大小 - 每個請求的最大大小 這將幫助您防止內存不足問題。
其他注意事項應該是: - 它是分佈式/集羣環境嗎?如果是,那麼請考慮一下2個請求是否有關聯,並且你想在一個服務器上將它們組織在一起? - 定時器:你的隊列是否有定時器機制。我可以看到,我沒有數據庫插入,所以有插入不能等待一批完成寫入數據庫的情況。如果是,則實現定時器以保持(不管批次是否已滿) - 檢查服務器是否出現尖峯攻擊,您的排隊機制是否能夠很好地處理它?任何事情都像釘釘子的政策。 - 系統故障是否可能會丟失部分批量插入數據? - 我可以看到,通過這樣做,您正嘗試爲遠程通話節省通話時間。但是,如果你阻止請求獲得持續(批量),你真的關心過境時間(真正的關注)?如果不是那麼SQS是更可靠的高效解決方案&。
除了這些,嘗試防止您的系統從SQL注入攻擊。
相關問題
- 1. Beanstalkd隊列服務器
- 2. 沒有本地消息隊列服務器的遠程消息隊列
- 3. 消息隊列Windows服務
- 4. 從隊列服務Java Applets?
- 5. 網絡服務和隊列
- 6. 創建服務器處理隊列
- 7. Meteor.js服務器方法隊列
- 8. 任務隊列VS. URLFetch
- 9. Azure的服務總線隊列主題VS隊列網絡/輔助角色
- 10. 任務隊列Java API
- 11. 任務隊列的Java API
- 12. 團隊基礎服務器
- 13. WCF服務的隊列實現
- 14. 安卓:隊列服務調用
- 15. Azure服務總線DeadLetter隊列
- 16. 音頻隊列服務 - 錄製
- 17. 亞馬遜簡單隊列服務(SQS)
- 18. Azure服務總線隊列OnMessageOptions
- 19. Azure服務結構消息隊列
- 20. 天青服務總線隊列並聯
- 21. 服務結構可靠隊列FabricNotReadableException
- 22. Azure的服務總線死信隊列
- 23. Azure服務總線隊列ScheduledEnqueueTimeUtc延遲
- 24. Android中的優先隊列服務
- 25. 與服務組合路由隊列
- 26. 代理服務發送隊列問題
- 27. 消息隊列服務不可用
- 28. 天青隊列服務php connectionstring
- 29. 服務總線隊列主機服務的異常處理
- 30. 如何更改隊列/服務的目標服務名稱