簡體   English   中英

sql查詢是否會阻塞node.js事件循環?

[英]Does sql queries block node.js event loop?

我將使用在SQL Server上執行CRUD操作並將結果返回給客戶端的純node.js創建一個Web-api。 查詢幾乎要長時間運行(大約3秒),每秒請求量很高(大約30 rps)。 我將mssql包與回調函數一起使用,以在准備好后返回結果。 我已經閱讀了很多關於節點的信息,我知道它非常適合於IO密集型而不是CPU密集型應用程序,並且事件循環也不應被阻塞,因為它是單線程的...

我的問題:Node.js是否適合這種(SQL密集型)方案? 在這種情況下使用Node.js是否存在任何性能問題? 謝謝

Node.js在非阻塞代碼上全神貫注 ,以至於Node.js API中阻塞的幾乎所有函數都將被標記為Sync

我見過的每個數據庫驅動程序都遵循要求回調,使用Promises或在某些情況下兩者都使用的模型。

作為Node.js開發人員,您必須仔細閱讀文檔以查找任何可能阻塞的調用,並且需要采用正確的並發方法來處理異步操作。 通常,您無需過於擔心任何給定操作的時間長短的細節,但是在執行緩慢的操作時仍應小心。 以較小的塊(例如,逐行)而不是一次全部處理數據。

即使它是單線程的,Node.js在負載下也可以很好地執行,因為在異步操作之間進行切換非常快。 您還可以通過輕松地並行處理多個Node.js進程來進行擴展,尤其是當您通過負載均衡器使用消息總線或HTTP類型的扇出時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM