2017-08-02 15 views
0

RabbitMQクラスタに監査ログメッセージを送信していますが、影響を受けない理由で利用できないことがあります。AMQP Appender保留中のメッセージ数

キューが利用できない場合、ログメッセージはローカルに蓄積し始め、最終的にはクライアント上でメモリ不足に陥ります。

私たちはメッセージを送信するためにAMQP Appenderを使用しています。

保留中のログメッセージの数をクエリし、メッセージの追加が開始されたときにアラートを表示する方法はありますか?

答えて

1

まあ、できません。それを行うフックはありません。

maxSenderRetriesをデフォルトの30から1または2に減らすことも考えられます。その後、あなたがログメッセージを失い始めましょう:

public LinkedBlockingQueue() { 
    this(Integer.MAX_VALUE); 
} 

が問題にJIRAを上げる気軽に:

int retries = event.incrementRetries(); 
if (retries < AmqpAppender.this.maxSenderRetries) { 
    // Schedule a retry based on the number of times I've tried to re-send this 
    AmqpAppender.this.retryTimer.schedule(new TimerTask() { 
      @Override 
      public void run() { 
       AmqpAppender.this.events.add(event); 
      } 
     }, (long) (Math.pow(retries, Math.log(retries)) * 1000)); 
} 
else { 
    addError("Could not send log message " + logEvent.getMessage() 
       + " after " + AmqpAppender.this.maxSenderRetries + " retries", e); 
} 

私たちは、代わりにデフォルトのqueueSizeオプションを公開する必要がある場合があります。

+0

ありがとうございます。問題はhttps://jira.spring.io/browse/AMQP-759です – Mandark

関連する問題