GWTベースのJava WebアプリケーションがGoogle App Engineにデプロイされています。このアプリケーションでは、サーブレットはメモリ内の状態を読み取り、変更します。クライアントコードは、この状態を変更し、その後同じ状態を変更または読み取る要求を送信することがあります。そのため、クライアントページの同じインスタンスからのすべてのリクエストが、アプリケーションのバージョンの同じインスタンスに移動することが重要です。同じクライアントからのすべてのリクエストを同じインスタンスに移動する必要があります
私は大量のトラフィックは期待していないので、インスタンスの最大数を1に制限しても構いませんが、そのインスタンスが多かれ少なかれ永続的に存在するようにしたいと思います。 (ユーザーがリクエスト間で1時間以上かかる場合は、データが失われても構いません)
詳しくは、私が状態を管理する方法は、ハッシュテーブルには、文字列が状態にマッピングされます。クライアントからの最初の要求では、新しい一意の文字列が作成され、新しい状態と新しいエントリがハッシュテーブルに作成されます。応答に文字列が返されます。その後の要求では、クライアントは文字列を送信して、サーブレットが変更または読み込みが必要な状態を見つけることができます。状態は非常に複雑であり、まったく直列化できないため、状態をデータベースに保存することはできません。
特定のクライアントインスタンスからのすべての要求が同じサーバーインスタンスに送信されるようにする方法はありますか?
回避策として、インスタンスIDを対象にしようとすると、ちょっとした並べ替えが行われますが、涙が出ます。 –
確かに、私はそれをお勧めしません。 –