[英]Load Balancing in Nodejs
我最近開始使用node,我已經閱讀了很多關於它是單線程的限制以及它如何不利用你的內核然后我讀了這個
http://bit.ly/1n2YW68 (談論用於負載均衡的nodejs的新集群模塊)
現在我不確定我是否完全贊同它:)因為在開始使用節點之前我想到的第一件事就是如何利用具有適當負載平衡的內核來通過web-server,就像nginx這樣的上游模塊
喜歡做這樣的事情
upstream domain1 {
server http://nodeapp1;
server http://nodeapp2;
server http://nodeapp3;
}
所以我的問題是使用這樣的集群模塊進行負載平衡以利用核心有一個優勢它是否具有優於Web服務器負載平衡的任何顯着優勢,或者是博客文章與實際使用相距甚遠。
注意 :我不關心各種應用服務器(如乘客)的負載均衡處理(乘客也有nodejs支持,但我不想回答:))我已經知道因為我主要是紅寶石程序員
可用於群集NodeJ應用程序的另一個選項是使用PM2部署應用程序。
集群很容易,因此, 您不需要手動實現集群
pm2 start app.js -i max
PM2是自動檢測可用CPU數量並運行盡可能多的進程的專家
在這里閱讀PM2集群模式http://pm2.keymetrics.io/docs/usage/cluster-mode/
為了控制IO操作的負載,我使用memoization概念編寫了一個名為QueueP的庫。 您甚至可以自定義記憶邏輯並獲得超過10的加速值
據我所知,內置節點集群還不是一個好的解決方案(負載不是均勻分布在核心上)。 直到v0.12: http ://strongloop.com/strongblog/whats-new-in-node-js-v0-12-cluster-round-robin-load-balancing/
所以你應該在那之前使用nginx。 之后我們將看到一些基准比較兩個選項,看看內置的集群模塊是否是一個不錯的選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.