一、背景
业务监控是指通过技术手段监控业务代码执行的最终结果或者状态是否符合预期,实现业务监控主要分成两步:一、在业务系统中选择节点发送消息触发业务监控;二、系统在接收到mq消息或者定时任务调度时,根据消息中或者任务中的业务数据查询业务执行的结果或状态并与业务预期的结果相对比。目前供销系统的方案如下:

由业务系统发送消息触发规则中心的校验任务,校验逻辑和报警规则通过规则中心的groovy脚本代码实现,该方案的缺点如下:
1.业务监控代码掺杂在正常的业务代码中,业务监控的代码侵入性高;
2.业务监控消息触发代码可复用性极低,各个应用都要维护一套代码,后期若要增加或维护某个功能时成本大;
3.增加业务监控的开发工作量,开发人员需要开发和维护与业务监控功能无关的代码,如:消息触发降级功能、性能监控、异步触发等功能;
为解决上述问题,本文提出了一种通用的业务监控触发方案。
二、方案介绍
- 通用mq消息体:
public class BusinessCheckMessage {
/**
* 监控类型
*/
private String businessType;
/**
* 业务监控需要的参数
*/
private Object data;
/**
* 业务方
*/
private String businessSource;
/**
* 当前所属的topic
*/
private String topic;
}
其中,
businessType用于区分业务监控的类型,如:终止合作、提单等;
data用于存储和业务相关的关键数据,如订单id、商家id等;

文章提出了一个通用的业务监控触发方案,旨在解决业务监控代码侵入性高、复用性低和开发工作量大的问题。方案包括使用通用MQ消息体、自定义注解+切面来解耦业务代码,以及提供侵入式触发的解决方案。此外,还介绍了如何通过注解简化消息发送,并提供了降级控制机制。
最低0.47元/天 解锁文章
2260

被折叠的 条评论
为什么被折叠?



