2011-12-13 11 views
0

JMSを使用して、リアルタイムの株価メッセージなどのリアルタイムメッセージを処理する場合、パフォーマンスを最大限に高め、設計を信頼できる方法は?たとえば、キュ​​ーまたはトピックを使用する必要がありますか?メッセージが到着したら、最初にデータベースに保存しなければなりません...、使用する必要がありますか?JMSのパフォーマンスを最大限に高め、設計において信頼性の高い方法

このコードは、メッセージングの

public void onMessage(Message msg) { 
     final long currentTime = System.currentTimeMillis(); 

     Thread timer = new Thread(new Runnable(){ 
      @Override 
      public void run() { 
       while(true){ 
        if((System.currentTimeMillis()-currentTime)>processTimeLimit){ 
         // send message back to server, processing time is over the limit 
         break; 
        }     
       }   
      }   
     }); 
     timer.start(); 

     Thread t = new Thread(new Runnable(){ 
      @Override 
      public void run() {    
       // save to db 
      }}); 
     t.start();  
    } 

おかげ

答えて

0

パフォーマンスがアップJMS層が、基礎となる実装にはないリアルタイムを実現することができます。例えば。 WebSphere MQ、Tibco EMS、Apache ActiveMQ、Oracle AQなど。

1つの受信者(プロセス)にのみ送信する場合はキューを使用する必要がありますが、多くの受信者に各メッセージのコピー。これは設計上の問題です。

メッセージが処理される前に失われた場合、アプリケーションに悪影響を与える可能性がある場合は、トランザクションが必要です。または、半分処理されたメッセージを持つことは有害である。ほとんどの場合、トランザクションを使用する必要があります。

関連する問題