2009-05-29 14 views
0

私は非常に負荷の高い読み書きシステムのためにメモリ内サービスを設計する必要があると言います。私はオブジェクトの結果を2分ごとにダンプしたい。 Webアプリケーション内からメモリ内オブジェクト/データにアクセスするにはどうすればよいですか?Webアプリケーションからインメモリサービスにどのようにアクセスしますか?

(私はWindowsサービス等のメモリ内のサービスを扱うバックグラウンドで実行されるだろうことを考えていた)

私は最速の可能な解決策をしたい、と私はほとんどの人がWebサービスを使用すると言うだろうと思いますか?他にどんな選択肢がありますか?私はWindowsサービスのオブジェクトなどにどのようにフックできるのか分かりません。

(私はこれをやりたいと思っている理由を尋ねないでください。正しいかもしれませんが、それは悪い考えですが、私も興味があります。このタイプのアーキテクチャが可能であるならば。)

更新

私は、私が思うだろう、このサイトswoopo.comを見ていたオークションの終わり近くにヒットをたくさん持っているが、オークションがリセットし続けるので、データベースへのヒットはちょうど狂っているので、メモリでそれを実行してx分ごとにdbにダンプすると思いました...

答えて

0

リモーティング技術は、ソケット、パイプなどのように機能します。

チェックアウト:www.remobjects.com

1

何がファサードフロントエンドで、キャッシュと呼ばれる記述しています。

変更をコミットしてデータセットを取得するファサードを作成します。ファサードは読み取りと書き込みをキューに入れ、キューがいっぱいになったときや一定の時間が経過したときにコミットします。 Webアプリケーションにはデータ(ファサード)への単一のアクセスポイントがあり、ファサードはストレージへの書き込みや読み込みを頻繁に行わないように構成されています。

ほとんどのリレーショナルデータベース管理システムがこれを行います。彼らはこの種の最適化と内部的なキューイングを行い、その上に別のレイヤーを書き込むことで処理が遅くなります。したがって、RDBMSを使用している場合はキャッシュを作成しないでください。

このようなファサードへのアクセスの詳細については、それを単なるオブジェクトとして扱い、それを実装することができます(独自のスレッド、スレッドプール、Webサービス、Windowsサービスなど)。

0

RemotingまたはWCFを使用してWindowsサービスオブジェクトにフックすると、両方とも非常に高速なプロセス間通信が提供されます。ソケットも高速ですが、WCFに比べてプログラミングが面倒です。オンラインでWCFのドキュメンテーションとサポートが大量に提供されています。

データベースは、あなたにレベルのキャッシングを提供します。あなたが提案しているようなメモリ内のゴールデンコピーの利点は、リクエストが来たときにディスクから読み込む必要がなく、あなたがそこに十分なRAMを持っていればあなたのIISと同じマシンにホストすることがないということです余分なネットワークホップがなく、dbを照会するほうがはるかに高速です。しかし、このアプローチの欠点は、ロードバランスのためにマシンを追加する必要がある場合にも拡張性がないことです。

TIBCOなどのサードパーティメッセージングプロバイダも検討する価値があります。

関連する問題