nodejs 负载均衡

实际中会用pm2来处理,这里只是了解下原理和网络模块

教程:http://taobaofed.org/blog/2015/11/03/nodejs-cluster/

纠正:net.createServerHandle();

记录:http://www.jianshu.com/p/54b85f278695

代码:

master

const net = require(‘net‘);
const fork = require(‘child_process‘).fork;

var handle = net.createServerHandle(‘0.0.0.0‘, 3000);

for(var i=0;i<4;i++) {
   fork(‘./worker‘).send({}, handle);
}

worker

const net = require(‘net‘);
process.on(‘message‘, function(m, handle) {
  start(handle);
});

var buf = ‘hello nodejs‘;
var res = [‘HTTP/1.1 200 OK‘,‘content-length:‘+buf.length].join(‘\r\n‘)+‘\r\n\r\n‘+buf;

function start(server) {
    server.listen();
    server.onconnection = function(err,handle) {
        console.log(‘got a connection on worker, pid = %d‘, process.pid);
        var socket = new net.Socket({
            handle: handle
        });
        socket.readable = socket.writable = true;
        socket.end(res);
    }
}

解释,fork(‘/worker)->emit(‘message‘)

时间: 2024-12-14 16:38:07

nodejs 负载均衡的相关文章

用Nginx做NodeJS应用的负载均衡

<用Nginx做NodeJS应用的负载均衡> 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 负载均衡可以把用户的请求分摊到多个服务器上进行处理,从而实现了对海量用户的访问支持.负载均衡的架构如图所示: 对于复杂的Web应用来说,用Nginx做前端负载均衡是理所当然的事. 下面,我们用Nginx做NodeJS应用的负载均衡. 1.配置Nginx 修改nginx.conf: .... upstream sample { server 127.0.0.

Nginx做NodeJS应用负载均衡配置实例

这篇文章主要介绍了Nginx做NodeJS应用负载均衡配置实例,本文直接给出配置实例,需要的朋友可以参考下. 负载均衡可以把用户的请求分摊到多个服务器上进行处理,从而实现了对海量用户的访问支持.负载均衡的架构如图所示: 对于复杂的Web应用来说,用Nginx做前端负载均衡是理所当然的事.下面,我们用Nginx做NodeJS应用的负载均衡.1.配置Nginx修改nginx.conf: upstream sample { server 127.0.0.1:3000; server 127.0.0.1

利用Nginx构建负载均衡server

大家都知道.一个域名相应一个IP地址,而一个WebSite则相应一个IP地址上相应port服务的应用程序(或位置).而大型站点的并发訪问量很大,这些站点是怎样在一台Webserver上实现负载均衡的呢? 相信非常多人会有与我相同的疑惑,但实际上成熟的解决方式已经大规模投入使用.而经常使用的则是反向代理方法. 反向代理(Reverse Proxy)方式是指以代理server来接受internet上的连接请求,然后将请求转发给内部网络上的server.并将从server上得到的结果返回给intern

node.js cluster多进程、负载均衡和平滑重启

1 cluster多进程 cluster经过好几代的发展,现在已经比较好使了.利用cluster,可以自动完成子进程worker分配request的事情,就不再需要自己写代码在master进程中robin式给每个worker分配任务了. const cluster = require('cluster'); const http = require('http'); const numCPUs = require('os').cpus().length; if (cluster.isMaster

利用Nginx构建负载均衡服务器

大家都知道,一个域名对应一个IP地址,而一个WebSite则对应一个IP地址上对应端口服务的应用程序(或位置).而大型网站的并发访问量非常大,这些网站是如何在一台Web服务器上实现负载均衡的呢? 相信很多人会有与我同样的疑惑,但实际上成熟的解决方案已经大规模投入使用.而常用的则是反向代理方法. 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理

初探nginx负载均衡配置

只简单说一下upstream的配置,如何进行负载均衡后续还需要多了解 1.另准备一个配置文件命名为nginx_test.conf 为了不污染原有的nginx.conf,提前复制一份配置文件做试验,然后启动nginx时加载nginx_test.conf 启动命令: [[email protected] conf]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx_test.conf -c参数表示加载指定的配置文件,后面跟的是文件

Nginx做负载均衡时session共享问题详解

用nginx做负载均衡时,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,就会出现很多问题,比如说最常见的登录状态. 再者Nginx连接Memcached集群时,Nignx的请求从memcached服务器中根据key获得了value则直接返回value,如果没有获得到value则去MySQL中查询再返回. location / { set $memcached_key "$request_uri"; #设置请求memcached服务器的key memca

nginxtomca负载均衡

Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性: 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎.能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型. 作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务.

使用LVS实现负载均衡原理及安装配置详解

转:http://www.cnblogs.com/liwei0526vip/p/6370103.html 使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学习 LVS 并对其进行了详细的总结记录. 一.负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director