複数のMeteorサーバープロセスを実行する場合に考慮すべき2つの主要な問題があります。
-
クライアントセッションアフィニティ。 クライアントはSockJSライブラリを使用してMeteorサーバーに接続し直します。通常は、サーバーに頻繁に再接続する長いポーリング戦略を使用します。サーバープロセスは、各クライアントに関連付けられた状態を保持します。したがって、特定のクライアントの接続がサーバー間でバウンスしないことが重要です。バウンスしないと、サーバーは新しいクライアントと通信していると見なし、すべてのサブスクリプション状態を再送信します。
-
データベースの無効化の調整。 クライアントがデータベース書き込みを発行するたびに、サーバープロセスは再計算を実行し、影響を受ける他のクライアントに更新をプッシュします。ただし、別のサーバーに接続しているクライアントは、そのサーバープロセスが10秒のMongoポーリングループを実行するまで変更を認識しません。一部のアプリケーションでは、ほとんどのクライアントが10秒遅れても問題ありません。アプリケーションでよりリアルタイムなものが必要な場合は、Meteorサーバープロセス間に独自のプロセス間通信を実装する必要があります。