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/

相关文章
相关标签/搜索