2017-07-28 20 views
0

これは長い説明です。キャメルルートでの監査

私は、成功または失敗にかかわらず、各ステップの厳しい監査要件があるCamelルートが必要です。

典型的なルートは以下のとおりです。

EndpointA - > QUEUE1 - >変換 - >キュー2 - > EndpointB

我々が成功するたびにキューにコミットした後に監査する必要があります。 abooveのような多くのルートがあり、それぞれが異なるキュー名を持つことに注意してください。

一つの解決策は次のとおりです。

EndpointA - > QUEUE1 - > AuditQueue - >変換 - >キュー2 - > AuditQueue - > EndpointB - > AuditQueue

しかし、私は別のAuditQueueを配置する必要がありますように、溶液が悪く見えますこの問題を解決するための主要なルートで。

私はQueue1、Queue2などをトピックに変更した場合、複数のコンシューマを書く必要があります(キュー(Queue2)など)各ステップでのメッセージが。私は何を探していますと、この問題への再利用可能なとエレガントなソリューションです?

事前のおかげで。

敬具、 Sreejesh。

答えて

0

メインルートの先頭にはonCompletion施設があります。交換が完了したとき、成功したとき、または失敗したときに常に起動されます。これは、グローバルスコープまたはルートスコープごとに設定できます。例えば

from("direct:mainRoute").routeId("mainRoute") 
     .onCompletion() 
      .to("direct:completionRoute") 
      .process(myCompletionProcessor) 
     .end()