跳到主要内容
CNode

请问NODEJS负载均衡、灾难恢复如何做?大神帮帮忙哦。

社区
Xxuhaijinsky2008发布于 14 年前最后回复 12 年前
11192740

有至少两个问题哈: 1、nodejs服务如何做多服务器集群/负载均衡? 2、nodejs服务的高可用性如何? 比如说nodejs其中一台服务器接收到了1000个请求在排队处理,在处理第一次请求的时候服务器突然挂掉了,那后999个请求怎么办?nodejs服务器重启后会重新处理这1000个请求吗? 处理机制是什么呢(序列化到硬盘再恢复吗)?

查看回复

回复 (11)

引用 pengchun单机上用node cluster做进程级的容灾;多机之间在node上层用nginx做反向代理;宕机、网络不通的情况需要名字服务或者客户端做心跳来解决。

@pengchun 关于 宕机、网络不通的情况需要名字服务或者客户端做心跳来解决, 可否深入解释一下,有文章体积如何实现吗?名字服务是指DNS吗?客户端做心跳是指什么呢?

P
pengchun#814 年前

单机上用node-cluster做进程级的容灾;多机之间在node上层用nginx做反向代理;宕机、网络不通的情况需要名字服务或者客户端做心跳来解决。

T
tank00#714 年前
引用 tank00nginx在node服务器之前做负载均衡的比较多吧。灾难恢复多数使用守护进程的方式。forever或者node cluster都可以,也可以自己写。

@xuhaijinsky2008 如果用node-cluster的话应该带有灾难恢复的功能吧。如果你用其他的可以用forever做灾难恢复。我用了一种简单的守护进程的方式,但是这种方式很暴力,不推荐生产使用,代码如下: function start(){ console.log('Mother process is running.'); var ls = spawn('node', ['app.js']); ls.stdout.on('data', function (data) { console.log(data.toString()); });

ls.stderr.on('data', function (data)
{
    console.log(data.toString());
});

ls.on('exit', function (code)
{
    console.log('child process exited with code ' + code);
    delete(ls);
    ls= null;
    setTimeout(start,3000);
});

}

X
xuhaijinsky2008#514 年前
引用 tank00nginx在node服务器之前做负载均衡的比较多吧。灾难恢复多数使用守护进程的方式。forever或者node cluster都可以,也可以自己写。

也就是说用Nginx做多服务器的负载均衡,用node-cluster做一台机器多CPU的负载均衡?灾难恢复能不能说详细一点呢?

T
tank00#414 年前

nginx在node服务器之前做负载均衡的比较多吧。灾难恢复多数使用守护进程的方式。forever或者node-cluster都可以,也可以自己写。

X
xuhaijinsky2008#314 年前

各位大神帮帮忙哦。

X
xuhaijinsky2008#214 年前
引用 jin52yangCluster模块或者用春哥的node cluster

春哥的node-cluster不仅仅是针对一个主机上的多个CPU吗?也可以针对多台服务器是吧?

J
jin52yang#114 年前

Cluster模块或者用春哥的node-cluster

参与回复

登录后即可参与回复。登录