0

我想跨所有服务器扩展我的传入请求。

我可以在集群中通过声明全局变量将所有传入请求存储在数组中来完成。

  //SERVER 1
    var store =[];
    //Instance node master
    http.createServer(function(req,res){


    store['InRequest1']=req;


    });
    //Instance node child
   http.createServer(function(req,res){


       var request = store['InRequest1'];
      request.write('sss');


    });

但是如果我在另一台服务器上创建另一个实例,我无法取回存储请求:

//SERVER 2
var request = store['InRequest1'];
request.write('sss');

我找到了使用 memcached/redis 存储循环对象(请求)的方法,但是当我尝试

 memcached.set(req); //hit error unable convert circular reference objects

无论如何要缩放圆形参考对象?

4

1 回答 1

0

但是如果我在另一台服务器上创建另一个实例,我无法取回存储请求

呃什么?除非您在服务器之间同步它们,否则这是行不通的。我换一种说法:猜猜我现在想的数字!(提示:你显然不能)

我想跨所有服务器扩展我的传入请求。

你方法的后半部分是正确的方法。使用数据库来跟踪所有服务器上的数据。但是在每次继续之前,您都必须检查数据库。由于延迟,这最终会导致一些问题。

无论如何要缩放圆形参考对象?

我不明白这部分。你能详细说明吗?什么循环引用?

于 2011-05-30T04:34:37.433 回答