2011-07-05 24 views
8

Tôi tò mò về việc sập ngang trong node.js có thể tải cân bằng trên nhiều máy chủ ảo như máy chủ đám mây không gian rackspace? Tôi đã đọc về plugin cụm nhưng tôi nghĩ nó chỉ dành cho một máy chủ đơn lẻ với cpu đa lõi.Node.js có hỗ trợ cân bằng tải trên nhiều máy chủ không?

+2

nginx? => http://www.shinstudio.com/blog/backend-tech/setting-up-node-js-in-nginx/ – Alfred

+1

Dễ dàng, viết proxy cân bằng tải nút trong nút. – Raynos

+1

nhưng những gì về các kết nối ví dụ, ví dụ như nhiều phòng trò chuyện cách người dùng định tuyến đến máy chủ cụ thể, điều gì xảy ra nếu người dùng được trải đều trên các máy chủ. – Christian

Trả lời

10

Hãy thử roundrobin.js cho node-http-proxy:

var httpProxy = require('http-proxy'); 
// 
// A simple round-robin load balancing strategy. 
// 
// First, list the servers you want to use in your rotation. 
// 
var addresses = [ 
    { 
    host: 'ws1.0.0.0', 
    port: 80 
    }, 
    { 
    host: 'ws2.0.0.0', 
    port: 80 
    } 
]; 

httpProxy.createServer(function (req, res, proxy) { 
    // 
    // On each request, get the first location from the list... 
    // 
    var target = addresses.shift(); 

    // 
    // ...then proxy to the server whose 'turn' it is... 
    // 
    proxy.proxyRequest(req, res, target); 

    // 
    // ...and then the server you just used becomes the last item in the list. 
    // 
    addresses.push(target); 
}); 

// Rinse; repeat; enjoy. 
+5

Việc triển khai này có thực hiện kết nối hoặc kết nối máy khách được chuyển đến máy chủ xảy ra tiếp theo không? Tôi đang tự hỏi trong bối cảnh sử dụng websockets và có một kết nối liên tục. Nếu tất cả các kết nối được kênh thông qua bộ cân bằng tải thì bạn vẫn có một nút cổ chai vì bộ cân bằng tải sẽ bị bão hòa với các kết nối. – jlafay

Các vấn đề liên quan