2016-11-23 60 views
0

我使用Node JS服務器設計集羣。我閱讀了關於NodeJS集羣由同一臺服務器組成的文檔,主要根據服務器具有的處理器數量使用工作進程。 我的問題是關於一個故障轉移機制,即使Master進程崩潰,它也能讓我的應用程序正常工作。Nodejs Cluster Master failover

這種情況下的最佳做法是什麼?

回答

0

我可以給你一些基於我工作過的Node.js項目的建議。

  1. 使用類似Redis的緩存機制(將其用作LRU緩存)或MemCache臨時存儲通信數據並稍後將其保存在某處。這樣,即使服務器崩潰,當服務器重新啓動時,仍然可以從緩存中恢復數據。
  2. 使用PM2或永遠監視您的Node.js實例並在崩潰時重新啓動它。
  3. 保持您的服務器無狀態,以便您不必擔心將客戶端的上下文存儲在服務器上(主進程或從進程)。
  4. 如果它是一個很大的應用程序,您可以使用nginx在服務器實例之間進行負載平衡,並且在發生崩潰時以一種將負載轉移到其他服務器的方式進行設置。

希望這會有所幫助。