BAM是Camel一个特殊的组件,用来监控消息的路由质量,(消息在某个endPoint的处理时间是否超时,是否正确到达某个endPoint).ui
BAM的设置以下google
1.1.1 在业务路由中增长监控的endPointspa
若是要对某个endPoint监控,则在此endPoint先后增长两个endPoint供监控使用.在本项目中对订单拆分bean,和采购单合成bean作监控.则在他们之间增长三个endPoint(direct:monitor-A/B/C)以下图:.net
1.1.2 定义监控路由code
增长监控路由定义类BAMRouteBuilder,继承ProcessBuilder.继承
在configure中:ip
对前面增长的监控节点定义ActivityBuilder,要指定endPoint,定义name,指明消息关联ID,ci
消息关联ID是用来标识两个监控节点的消息是不是同一的消息.路由
1.1.3 定义监控规则get
定义消息从前一个节点到达后一节点所指望的时间.
定义消息处理时间超过阀值时发送告警消息.
以下图:指望消息从监控点A到达监控点B在一秒中以内(即1s以内对订单数据拆分处理完成)
如过超过5s则发送告警消息到控制台.
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 |