Camel BAM组件的使用说明

BAM是Camel一个特殊的组件,用来监控消息的路由质量,(消息在某个endPoint的处理时间是否超时,是否正确到达某个endPoint).

BAM的设置如下

1.1.1 在业务路由中增加监控的endPoint

如果要对某个endPoint监控,则在此endPoint前后增加两个endPoint供监控使用.在本项目中对订单拆分bean,和采购单合成bean做监控.则在他们之间增加三个endPoint(direct:monitor-A/B/C)如下图:

clip_image002

1.1.2 定义监控路由

增加监控路由定义类BAMRouteBuilder,继承ProcessBuilder.

在configure中:

对前面增加的监控节点定义ActivityBuilder,要指定endPoint,定义name,指明消息关联ID,

clip_image004

消息关联ID是用来标识两个监控节点的消息是否是同一的消息.

1.1.3 定义监控规则

定义消息从前一个节点到达后一节点所期望的时间.

定义消息处理时间超过阀值时发送告警消息.

如下图:期望消息从监控点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/

你可能感兴趣的:(Camel BAM组件的使用说明)