簡體   English   中英

heroku愛好dyno上的node.js,局限性

[英]node.js on heroku hobby dyno, limitations

我無法掌握將節點與Heroku Hobby dyno一起使用時的性能限制,該類型僅包含1個Web worker。

我的heroku服務器用於響應發布請求並啟動服務器到服務器的通信。 我們將其稱為“過程”。

Node.js是javascript,只有一個事件循環,是否表示如果myheroku服務器尚未完成該過程,它將無法啟動另一個事件循環?

在客戶端,用戶發送一個發布請求,該請求啟動“流程”。

如果過程未完成,第二個用戶是否可以發送另一個發帖請求並期望發生任何事情? 我的服務器是否會掛起,直到完成第一個過程?

在我的初步測試中,兩個用戶幾乎同時發送請求似乎沒有問題,所以我不確定我會遇到什么限制

根據Heroku的文檔,這不是問題,您將能夠處理多個請求而Node.js不會出現問題。

測功機和要求

單個dyno每秒可以處理數千個請求,但是性能很大程度上取決於您使用的語言和框架。

單線程,非並發Web框架(如其默認配置中的Rails 3)可以一次處理一個請求。 對於平均需要100毫秒處理每個請求的應用程序,這意味着每個dyno每秒大約10個請求,這不是最佳選擇。

不建議將單線程后端用於生產應用程序,因為它們對並發請求的處理效率低下。 開發和運行生產服務時,請選擇並發后端。

Java,Unicorn,EventMachine和Node.js等多線程或事件驅動的環境可以處理許多並發請求。 對應用程序進行負載測試是確定請求吞吐量的唯一現實方法。

進一步閱讀:

在dynos上: https ://devcenter.heroku.com/articles/dynos#dyno-types

關於作業和排隊: https : //devcenter.heroku.com/articles/background-jobs-queueing

異步工作者: https : //devcenter.heroku.com/articles/asynchronous-web-worker-model-using-rabbitmq-in-node

暫無
暫無

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

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