私は Java EE アプリケーションで作業していますが、これはサーバー側のアプリケーション レベルのインメモリ データを大量に必要とします (つまり、ユーザー レベルのデータではありません)。アプリケーションレベルのデータとは、データがすべてのユーザーに対して一定であることを意味します (マスターデータなど)。これまで、16 GB の RAM を搭載した単一の Windows サーバーで、15 ~ 20 人の同時ユーザーに対して EHCache を使用していました。アプリケーションのヒープ サイズを 8 GB に指定しました。
ここで、アプリケーションを再設計して、500 を超える同時ユーザーをサポートできるようにする必要があります。これにより、より多くのインメモリ データ要件が発生します。
アプリケーションが十分にスケーラブルであるように、そのようなシナリオであなたの視点を持ちたいと思います。
私の理解によると、次の解決策が役立ちます-
負荷が分散されるように負荷分散を実装しますが、各サーバーのインメモリ データはアプリケーション レベルのデータであるため、依然として高くなります。ある程度は役に立ちますが。
データをキャッシュに保持するのではなく、ステートレス操作としてこれを実装します。しかし、これはパフォーマンスに影響を与えます。ステートレスがスケーラビリティの鍵であるとどこかで読みました。これは手間がかかりすぎるので避けたいです。
Terracotta の BigMemory を EHCache と組み合わせて使用します。基本的に、特別な方法でディスクにデータを保持します。つまり、データ アクセス速度は良好です。これは無料の製品ではないことに注意してください。このような無料のオプションはありますか?
クラウドベースのメモリ アーキテクチャを選択しますか? これについてはあまり意識していません。
どんな提案でも大歓迎です。