原来 http.request 只能连接到一台主机。是否有其他方式或其他方法可以指定多个主机来创建http远程请求客户端?
这背后的原因是我连接的远程服务有三台冗余主机,如果一台出现故障,其他主机将继续工作。所以,我正在寻找一种方法来使 http.request 或任何请求客户端指定多个主机,并连接到正在工作的主机。如果第一个失败,则切换到列表中的另一台主机。
原来 http.request 只能连接到一台主机。是否有其他方式或其他方法可以指定多个主机来创建http远程请求客户端?
这背后的原因是我连接的远程服务有三台冗余主机,如果一台出现故障,其他主机将继续工作。所以,我正在寻找一种方法来使 http.request 或任何请求客户端指定多个主机,并连接到正在工作的主机。如果第一个失败,则切换到列表中的另一台主机。
你可以再做一个,直到有东西起作用:
var hosts = ["first.com", "second.com", "third.com"];
(function loop(i) {
var host = hosts[i],
options = {
host: host,
port: 80,
method: 'GET'
};
if (host) {
var req = http.request(options, function(res) {
if (res.statusCode !== 200) {
loop(++i)
} else {
console.log("request succeeded");
}
});
req.on("error", function() {
loop(++i);
});
req.end();
} else {
console.log("ran out of hosts to try");
}
})(0);