MeteorをAmazonAWSEC2サーバーにデプロイすることを計画していましたが、サーバーの複数のインスタンスを同時に実行して、より多くのクライアントにサービスを提供したいと考えています。クライアントがコレクションの更新について更新する機能を壊すことなく、Meteorでこれを行う適切な方法はありますか?
2 に答える
複数のMeteorサーバープロセスを実行する場合に考慮すべき2つの主要な問題があります。
クライアントセッションアフィニティ。 クライアントは、SockJSライブラリを使用してMeteorサーバーに接続し直します。通常は、サーバーに頻繁に再接続する長いポーリング戦略を使用します。サーバープロセスは、各クライアントに関連付けられた状態を保持します。したがって、特定のクライアントの接続がサーバー間でバウンスしないことが重要です。バウンスしないと、サーバーは新しいクライアントと通信していると見なし、すべてのサブスクリプション状態を再送信します。
データベースの無効化の調整。 クライアントがデータベース書き込みを発行するたびに、サーバープロセスは再計算を実行し、影響を受ける他のクライアントに更新をプッシュします。ただし、別のサーバーに接続しているクライアントは、そのサーバープロセスが10秒のMongoポーリングループを実行するまで変更を認識しません。一部のアプリケーションでは、ほとんどのクライアントが10秒遅れても問題ありません。アプリケーションでよりリアルタイムなものが必要な場合は、Meteorサーバープロセス間に独自のプロセス間通信を実装する必要があります。
みんなこれはあなたが見るべきものです
Meteor Cluster- https://github.com/arunoda/meteor-cluster
私もここでこれについてブログを書きました:http://goo.gl/2aHJ2