CNode

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

Xxuhaijinsky2008发布于14 年前最后回复12 年前11 回复19229 浏览0 收藏

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

查看回复

回复 (11)

J
jin52yang#1·14 年前

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

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

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

X
xuhaijinsky2008#3·14 年前

各位大神帮帮忙哦。

T
tank00#4·14 年前

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

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

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

T
tank00#7·14 年前
引用 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);
});

}

P
pengchun#8·14 年前

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

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

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

C
chemdemo#10·12 年前
参与回复
登录后即可参与回复。登录