我遇到了兩個相同主機但不同端口之間彈跳的問題。如何在node.js中的兩個相同主機之間加載均衡(彈性)
所以我使用Node.js的模塊bouncy,我有相同的主機(本地主機),但聽不同的端口上的兩個應用程序主機。
我使用的是routes.json
{ "localhost" : 8001, "localhost" : 8000 }
,並指出在命令行有彈性。
但它似乎不適用於兩臺相同的主機?只有主機與端口8000
工程...
這個任何解決方案? 提前致謝
我遇到了兩個相同主機但不同端口之間彈跳的問題。如何在node.js中的兩個相同主機之間加載均衡(彈性)
所以我使用Node.js的模塊bouncy,我有相同的主機(本地主機),但聽不同的端口上的兩個應用程序主機。
我使用的是routes.json
{ "localhost" : 8001, "localhost" : 8000 }
,並指出在命令行有彈性。
但它似乎不適用於兩臺相同的主機?只有主機與端口8000
工程...
這個任何解決方案? 提前致謝
我想你誤會了點routes.json
:散列中的鍵表示虛擬主機名。
這可能與域名的工作,例如:
{ "dev.xx.com" : 8001, "prod.xx.com" : 8000 }
基於文件的配置工作,通過檢查req.headers.host
決定在哪裏路由流量。
你試圖加載在「localhost」相同的應用程序的平衡兩個實例?在這種情況下,你應該看看內置節點的羣集庫:http://nodejs.org/api/cluster.html
編輯:
兩個羣集和有彈性的,可以用來加載你的平衡請求。如果你使用彈性,你將不得不自己寫一個簡單的循環機制(不能使用routes.json),集羣內置它。
有彈性的(針對特定使用案例)的另一個缺點是有彈性確實沒有監控它反彈請求到服務器。您必須添加邏輯才能檢查兩臺服務器是否響應。同樣,這些都集成到集羣中(它將服務器作爲子進程運行,並可以在發生故障時重新啓動它們)。集羣還可以用於使用新代碼安全地重新啓動子服務器,而不會丟失任何請求。
總而言之:快活是確定的,如果你想使用它作爲一個代理,但集羣負載平衡製成。
也許你能避免衝突的關鍵:'{ 「本地主機」:8001, 「127.0.0.1」:8000}'。如果你的主機需要更多的名字,那麼你可以在'/ etc/hosts'中添加一些新的名字。 – joeytwiddle 2013-07-19 21:37:41