Camel BAM組件的使用說明

BAM是Camel一個特殊的組件,用來監控消息的路由質量,(消息在某個endPoint的處理時間是否超時,是否正確到達某個endPoint).ui

BAM的設置以下google

1.1.1 在業務路由中增長監控的endPointspa

若是要對某個endPoint監控,則在此endPoint先後增長兩個endPoint供監控使用.在本項目中對訂單拆分bean,和採購單合成bean作監控.則在他們之間增長三個endPoint(direct:monitor-A/B/C)以下圖:.net

clip_image002

1.1.2 定義監控路由code

增長監控路由定義類BAMRouteBuilder,繼承ProcessBuilder.繼承

在configure中:ip

對前面增長的監控節點定義ActivityBuilder,要指定endPoint,定義name,指明消息關聯ID,ci

clip_image004

消息關聯ID是用來標識兩個監控節點的消息是不是同一的消息.路由

1.1.3 定義監控規則get

定義消息從前一個節點到達後一節點所指望的時間.

定義消息處理時間超過閥值時發送告警消息.

以下圖:指望消息從監控點A到達監控點B在一秒中以內(即1s以內對訂單數據拆分處理完成)

如過超過5s則發送告警消息到控制檯.

clip_image006

1.1.4 BAM監控數據記錄

BAM會對每一個消息通過每一個監控點時產生一條記錄,記錄消息到達監控點的指望到達時間,超時時間,是否收到消息等信息。

1.1.5 監控關注數據

CAMEL_ACTIVITYSTATE中ESCALATIONLEVEL 爲0且當前時間大於指望時間TIMEEXPECTED的數據爲超時數據,需關注:

若是數據符合上面條件且TIMEOVERDUE不爲空表明消息還在處理中;

若是數據符合上面條件且TIMEOVERDUE爲空表明消息已處理完成,單未正確到達監控節點。

BAM實體清單

名稱

代碼

父類

產生

數字

監控點

ActivityDefinition

EntitySupport

Auto

 

消息監控記錄

ActivityState

TemporalEntity

Auto

 

消息

ProcessInstance

 

Auto

 

消息處理器

ProcessDefinition

EntitySupport

Auto

 

 

代碼參見:https://code.google.com/p/trail-blazers/

相關文章
相關標籤/搜索