1

.NETを使用して完全にメモリ内のアプリケーションを開発しました。データは、起動時に永続ストレージから1回ロードされ、それ以降は、オブジェクトへの変更のみが、アプリケーション層からワークキューを介して永続ストレージにトリクルバックされます。それはうまく機能しており、ベンチマークはさらに優れています(1秒あたり10万のAPIトランザクション)。これは型にはまらない、拡張が難しいアーキテクチャであることに気づきました。実験のようなものでした=)

建築

(左側が現在のアーキテクチャ、右側が目的のアーキテクチャ)

今、私は冗長性について考え始めています。2つのアプリケーションサーバーを並べて実行し、それらの間で負荷分散を行いたいです。これは、すべてのメモリ内オブジェクトの同期を維持することを意味します-おそらく、バイナリシリアル化されたオブジェクトを前後にシャトルする永続的なtcp接続を介して。結果整合性は問題ありません。概念的には、両方のアプリサーバーが永続ストレージから同じ状態にコールドスタートされた後、これがどのように機能するかを確認できますが、リクエストのストリーミング中に新しいアプリケーションサーバーノードをインスタンス化して同期する方法を概念化するのは困難です。スナップショット+トランザクションログのようなものですか?

これは達成可能ですか?この種のアーキテクチャは、注目すべき場所で使用されていますか?

4

1 に答える 1

1

あなたのニーズを満たす製品がそこにあります。あなたはあなたのnfrについて言及していないので、効率のためだけにハンドロールしたいかどうかはわかりません。infinispanのようなものがあなたのために働くはずです。さらに難しいのは、メモリ空間にいる場合のデータのトランザクション性です。技術的および破壊テストをどのように達成できるかを調査する価値があります。

于 2012-06-09T11:53:16.477 に答える