2017-05-03 41 views
0

我一直在爲我的服務器使用forverjs,但由於某種原因服務器停止並且服務器沒有再次重新啓動。 foreverjs可靠嗎?nodejs - 如何確保我的應用程序始終可靠

我應該使用任何其他庫嗎?

發現有許多像pm2,nodemon,upstart,systemd,nginx的庫。哪一個應該確保我的應用程序始終運行。這些工具也可以處理大量的請求嗎?

+0

我喜歡pm2,但我也建議[監控](https://mmonit.com/monit/)進行監控(電子郵件停止服務,但我離開節點進程重新啓動到pm2,monit也很適合所有情況「未節點「)。除此之外,我發現它是讓你的代碼記錄適當的錯誤,所以你可以防止重複同樣的事情。在不知道錯誤的情況下,您可以坐在那裏並抓住你的頭。 「我當然希望這不會再發生!」 – ippi

回答

0

nodemon是一個不錯的選擇,你可以使用的永遠nodemon使用相結合,

forever start -c nodemon app.js 
在我的經驗永遠

而且是非常可靠的,儘量

forever logs app.js 

,看看究竟是什麼引起的錯誤

2

您的問題中有多個問題需要分析。

foreverjs可靠嗎?

forever是一個非常流行的軟件包。 As seen on GitHub,它有75個貢獻者和636個提交。這個問題主要是基於意見的,但9/10(也許是10/10)經驗豐富的開發人員會說這是可靠的因爲它的目的(我在下面展開)。

我應該使用任何其他庫嗎?

可靠性是通過堅固的軟件設計實現的,而不僅僅是您選擇的軟件包。多年來,我一直使用foreverpm2生產流程,而且沒有任何問題。它們包括可靠性的強大功能,如試圖在崩潰時重新啓動應用程序。軟件包不應該修復代碼中的終端錯誤。

發現有很多像lib2,nodemon,upstart,systemd,nginx的庫。 哪一個應該確保我的應用程序始終運行。

這可以通過閱讀他們的GitHub描述找到。我使用nodemon來快速測試代碼。例如,我啓動了nodemon進程,它開始了我的Node.js進程。當我編輯我的代碼並按下保存時,Node.js進程將自動停止並使用新代碼重新啓動。 nodemon不應該單獨用於長時間運行的生產服務器,因爲它在退出shell時會停止。 pm2forever是有效的庫,如有必要,您可以調查upstart,systemdnginx

關於@卡拉娜德梅爾的回答,我認爲在我上面的解釋中使用forever來運行nodemon與使用forever一樣。

如何確保我的應用程序是可靠所有的時間

對於整體回答你的問題,你應該寫測試,以確保你的代碼是可靠的。如果你已經編寫了有效的單元和集成測試,選擇一個包來運行這個過程將是微不足道的(與可靠性無關),因爲你不應該期望它會崩潰。

0

pm2在這些情況下是很好的選擇,我個人在我所有的node.js服務器中使用pm2,它提供了許多比其他更重要的功能。
其中一個最好的事情可以很容易地與用於分析服務器的keymetrics/newrelic集成。
另外pm2會給你cpu /內存使用量,你甚至可以配置重啓限制和間隔。

相關問題