0

モジュールの設計に必要なアドバイス

PORTをリッスンするPORTリスナーがあります。受信したすべてのリクエストはキューに入れる必要があります。キューを処理するためのスレッドが5つあります。同時に、すべての着信要求を永続化する必要があり、同じ処理での応答も永続化する必要があります。

それを実装するための最良の方法は何ですか?

数時間一時的に処理を停止しなければならない場合があるため、リクエストとレスポンスを一緒に保持することはできません。別の状況は、このアプリケーションの失敗である可能性があります。永続ストレージからキューを再開できるはずです。

もう1つの問題は、キューのサイズを保証できないことです。したがって、dbからアイテムを継続的にフェッチするのにかかる時間は短くなります。DBにリクエストがない場合があります。NOSQLに行くべきですか?

4

1 に答える 1

1

基本的な概念は、永続キューを使用することです。

リクエストハンドラ(サーブレットなど)は、リクエストをJMSメッセージに変換し、JMSキューを介して送信する必要があります。ActiveMQHornetQなどを使用できます。次に、そのキューからのメッセージを消費するメッセージ駆動型Beanを作成します。

JMSキューは永続的であるため、サーバーが故障してもタスクが失われることはありません。MDBは(たとえば、JMXまたはシステムプロパティを使用して)制御できるため、いつでも処理を停止でき、MDBを再度有効にするまで、タスクはキュー内に保存されます。

これは、Oracleからの完全なJMSウォークスルーであり、その方法を段階的に示しています。

于 2012-06-16T13:02:52.727 に答える