Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
http.request能否连接到多个主机(node.js)?_Node.js_Httpwebrequest - Fatal编程技术网

http.request能否连接到多个主机(node.js)?

http.request能否连接到多个主机(node.js)?,node.js,httpwebrequest,Node.js,Httpwebrequest,最初,http.request只能连接到一台主机。是否有其他方式或方法可以指定多个主机来创建http远程请求客户端 这背后的原因是我连接的远程服务有三个冗余主机,如果其中一个宕机,其他主机将继续工作。因此,我正在寻找一种方法,使http.request或任何请求客户端指定多个主机,并连接到正在工作的主机。如果第一台主机出现故障,则切换到列表中的另一台主机 你可以再做一个,直到有效果为止: var hosts = ["first.com", "second.com", "third.com"];

最初,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);

听起来您希望在三台主机之间实现负载平衡。对吗?如果是这样的话,也许会有帮助。基本上,这个想法是您将发送到特定主机(虚拟)上的负载平衡器,然后它将代理(循环)到真实服务器(真实)。为了实现完全冗余,您需要寻找一个可以集群化的负载平衡器

编辑:
我已经使用了负载平衡,并发现它工作得很好。它允许您配置绑定到IP的虚拟主机。然后从虚拟IP转发到n个真正的服务器。

绝对正确。好啊那么我看看你的帖子。:)谢谢