2012-02-07 19 views
2

外部システムからの要求を受け取り、それに応じてDBを更新するREST Webサービスがあります。私は最近、いくつかのDBサーバーの問題を抱えていて、DBサーバーがダウンしたときにいくつかのメッセージを失ってしまったので、要求のキャッシュ/キューイングのソリューションを実装しようとしています。キューに代わるJMSへの代替方法

シンプルな永続的なファイルベースのキューを作成する前に、私の環境では使用が制限されているため、JMSの良い代替方法があるかどうかを確認したいと考えています。以下skaffmanの質問パー JBossの4.3 RichFacesの3.3 春3.0.5 RESTEasyの

** UPDATES **

、クラスタリング、トランザクションのための私の要件など

現在のプラットフォーム

  • クラスタリング:Webサーバーとアプリケーションサーバーはすべてクラスタ化されているため、キューはすべてのクラスタノードのアイテムを処理できる必要があります。しかし、私たちのコミットは基本的にアトミックなので、順序付けと同期の問題はごくわずかです。スレッドとクラスタの安全性は、実際には要素ではありません。各クラスタの独立した/独立したキューで十分です。

  • トランザクション:データのアトミック性のために、トランザクションのニーズは個々のリクエストの外部では必要ない/必要ではありません。

  • セキュリティ:中傷的な懸念がありますが、Webサービスの通常のセキュリティで処理されることが予想されます。私は、Webアプリケーション自体以外の待ち行列への読み書きを期待していません。これは、大量の場合やDBが使用できない場合にのみ必要です。

おかげで、我々はキュー(HornetQの)を使用しましたが、顧客がWebLogicまたはJBossのアプリケーションたくなかったので、Tomcat上で展開可能戦争でかつ統合された一つのプロジェクトのために

マイク

+0

変換、クラスタリング、セキュリティに関する要件はありますか? – skaffman

+0

なぜJMSはありませんか? – anubhava

+0

@anubhava - 良い質問です。私は詳細を見つけようとしていますが、一般的な言葉は、Googleの技術スタック内では禁止されている/制限されており、例外なくWeb環境では許可されないということです。 –

答えて

0

あなたの制限ポリシーがあなたのアプリケーションアーキテクチャーにも向いていれば、そのようなソリューションは禁止されます。

他のプロジェクトでは、JMS実装を使用せず、メッセージデータベースを使用して非同期実装を行い、イベントを消費するためにspring-integration frameworkService Activatorを作成しました。 このようにして、メッセージ発行者はDBテーブルに行を挿入するだけで、Service Activatorはイベントをトリガーし、他のサービス(Spring、Webサービスなど)を呼び出します。

関連する問題