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 に答える