0

これらのタスクを使用してバックエンド サーバーを開発する方法を検討しています。

  • RabbitMQ 経由で到着するメッセージの処理 (処理は基本的に次のようになります。Hibernate を使用していくつかのドメイン モデル エンティティをロードし、それを実行させます)
  • プラグ可能である必要があります。顧客ごとに異なるモジュールがロードされます。各顧客は個別のインスタンスです。
  • これらのモジュールのいくつかは、おそらくさまざまな種類のサービスを公開する必要があります (REST、おそらく SOAP など)。
  • AOPまたはその他のメカニズムを介して、ボイラープレートコード(トランザクション管理、ロギングなど)のほとんどを削除できるはずです。

いくつかの背景について。Windows サービス、Castle Windsor、NHibernate、NServiceBus、またはその他のメッセージング ソリューションを使用して、.NET でこのようなことを行いました。したがって、私は単一のモノリシック ソリューションに偏っていると言えます (これは、私が Java EE などに対して得ている衝動です)。これらすべてを実現するために、いくつかの小さなフレームワークまたはライブラリを使用することをお勧めします。それらが同じアプリケーションサーバーで実行されている限り。

私が現在検討しているオプションは次のとおりです。

  • これらすべてのこと (JPA、Hibernate など) を実行できると想定される GlassFish のような Java EE アプリケーション サーバー
  • Play フレームワークと RabbitMQ に接続された Akka アクター。Akka アクターはメッセージを処理し、ドメイン モデル メソッドを呼び出します。Play で開発された Web UI 用の別のアプリケーションがあります。
  • ネティ
  • Jetty コンテナー内の Java EE の代替としての Spring

私はJavaエコシステムを始めたばかりなので、混乱した場合はいくつかの一般的な指針と説明を使用できます...

編集:

他のオプションの追加:

4

2 に答える 2

2

このために、あなたが言及したようにアプリケーションサーバーでOSGiを使用することをお勧めします。

その後、REST や SOAP サービスなどのサービスには Web コンテナーを使用し、MQ メッセージに対処できるプロセスを実行するには OSGi バンドルを使用できます。

ボイラー プレートの管理に Spring を使用する場合は、優れた AOP、トランザクション管理があり、MQ および Hibernate ともうまく統合されます。

MQ 用の OSGi バンドルで Spring 統合を使用します。

アプリケーション サーバーの場合は、Spring DM Server を使用してみてください。 http://www.springsource.org/dmserver

自分で使用したことはありませんが、これにより多くの柔軟性が得られるはずです

于 2013-01-25T09:04:32.240 に答える
0

Camel Integration Frameworkをご覧ください。パイプライン (またはエンドポイント、Camel の用語) を定義し、さまざまなメッセージを配信する方法と場所のルールを定義できます。
たとえば、HTTP メッセージを取得して変換し、他のメディア タイプ (キューやメールなど) で可能であり、最小限のコーディングですべてを渡すことができます。
Java、Scala、および Spring DSL があり、スタンドアロン、Web、または OSGi アプリケーションとして実行できます。私の経験から強くお勧めします。

于 2013-01-25T09:33:03.570 に答える