私は、これまで単一サーバー上の JBoss AS で実行されていたアプリケーションに取り組んでいます。ここで、別のサーバーを追加して JBoss クラスターを作成するフェイルオーバーの要件があります。問題は次のとおりです。
これまで、アプリケーションは Hashmap を使用して、データベースから取得した約 200 万件のレコードを格納していました。次に、このデータを 2 番目のノードに複製する必要があります (将来、さらにノードが追加される可能性があります)。保存する必要があるデータは、現在 500 万レコード程度になる可能性が高くなります。
このキー/値型のデータを格納し、すべてのサーバー ノードに複製するための最善の方法について意見を述べたいと思います。
Redisまたはmemcachedが適切なソリューションになるかどうかを考えていましたか? JBoss Cache はどうですか。分散キャッシュであり、クラスター内のすべてのノードにレプリケーションを行うことがわかっています。
私が最も心配していることは次のとおりです。
- パフォーマンスへの影響 - レプリケーションによってネットワーク遅延データが発生する可能性があります
- 品質 - メモリに影響を与える古いデータの使用を避けたい -
- データが HashMap/Cache にロードされると、有効期限が切れません。レコードの追加または削除が発生する可能性があり、これらの変更をすべてのノードで複製する必要があります。
- スケーラビリティ - 前述のとおり ... ノードを追加できます
これについてのご意見は大歓迎です。