2011-02-03 9 views
1

データベースを使用しないユーティリティのspring-mvcアプリケーションがあります。これは単なる石鹸/レストラッパーです。デプロイ間に存続するユーザーに表示するための任意のメッセージを格納したいと考えています。アプリケーションは、このデータを読み書きできる必要があります。このためのベストプラクティスはありますか?データベースに依存しないWebアプリケーションのデプロイ間でサーバーの状態を保存するにはどうすればよいですか?

+0

メッセージを保存するMBeanを作成する方法はありますか?別のオプションは、共通領域のファイルに保存することです。 – CoolBeans

+0

ユーザーあたりのメッセージ?みんなのために、ただ一つのメッセージですか? – Joel

+0

@Joel - メッセージは1つだけです。 @CoolBeans - MBeanは、リブートの間にまだどこかに保持する必要があります。 – jabbie

答えて

1

複数のオプション。

ファイルシステムに何かを書く - 永続性のために最適です。少し遅いです。主な欠点は、おそらく共有ファイルシステムでなければならないということです。どのようなタイプのクラスタリングもこれをうまく処理できないからです。その後、ファイルロックの問題が発生します。非常に簡単な実装

埋め込みDB - ファイルシステムへの書き込みと同様のメリットと落とし穴がありますが、ロックやトランザクションの問題が改善されている可能性があります。多少難しい実装。

分散キャッシュ - Memcachedと同じように、ファイルよりも高速ですが、それほど多くはありません。クラスタリングとロックの問題を扱う。しかし、それは永続的ではありません。短いWebアプリケーションの再起動ではかなり信頼できますが、確かに100%ではありません。実装が難しく、さらに別のサーバーが必要です。

0

なぜ組み込みデータベースを使用しないのですか?オプションは次のとおりです。

ちょうどWebアプリケーションのclassdir内のjarファイルが含まれており、通常通りJDBC URLを設定します。

パーフェクトデモ用と置き換えるやすいあなたは大きなデータベースサーバ

0

に切り替えたいとき、私はそのファイルシステム上のファイルに簡単な店でしょう。埋め込まれたデータベースなどを使用することは可能ですが、1つのメッセージに対してはファイルは正常です。

ファイルをアプリケーションディレクトリの外に保存することをお勧めします。 それはその横にあるかもしれませんが、あなたの "webapps /"ディレクトリ内に格納しないでください。

おそらく並行性を管理する必要があります。グローバル(静的)読み取り/書き込みロックはうまくいくはずです。

+0

Tomcat/Jetty homedirに入れますか? (/ tmpは揮発性であるため出力されています) – jabbie

0

私はJNDIを使用します。なぜ複雑すぎるの?

関連する問題