随着转转业务规模快速增长,系统拓扑结构越来越复杂,加上二手交易玩法也非常多(如C2C、C2B、B2B、B2C、C2B2C等),在这种复杂系统架构和业务场景下,无法避免会出现RPC调用失败,消息漏发,线上Bug,业务新老规则冲突等因素引发数据异常,导致用户客诉,以及公司产生损失。当时公司没有一个统一的数据校验治理方案,行业也无相关开源系统,导致业务数据治理这块一直都是一个没有深入治理的领域。基于以上背景,转转业务规则校验平台(简称ZZBCP:ZZ Business Check Platform)孕育而生,此系统帮助业务系统实时校验线上的每一笔单据数据,填补了业务数据质量治理领域的空白。
下图是系统执行规则流程图,触发事件源(trigger msg)驱动规则执行(实时或者延时执行),目标事件数据源(Target msg-可以不配置目标数据源,则通过RPC方式获取需要校验的目标数据源)是被校验的数据内容。
T1时刻,系统收到触发消息后,命中规则且延时到T3时刻进行数据校验动作。T2时刻,收到目标消息,则将目标消息处理后,暂存到Codis中,等到T3时刻对目标消息进行校验,然后根据校验结果执行后续流程。
当前支持订阅MQ和Binlog消息(Redis/ES暂时不支持)。该模块将触发事件和目标事件的数据,统一转化成ZZBCP系统标准的数据格式,方便后续规则执行引擎统一进行处理。当前对binlog消费使用的Kafaka,将MySql, TiDB的binlog通过CDC中间件(Canal, Maxwell)推送到Kafka消息中间件。
延时队列中的规则到期后,会执行数据组装操作,从redis中查询数据(目标数据源),将数据按系统定义的格式组装好,交给规则执行引擎执行。
当前我们支持两种规则执行引擎:
该模块主要是根据规则执行引擎返回的结果,判断是否需要进行后续的告警操作,异常数据的收集,以及否需要进行重试执行校验动作。
对于以下特殊场景的数据异常,如果可以自动化触发数据修复,则可以使用此功能进行一个数据修复。当前我们的内部财务对账系统,就使用了此功能对异常数据进行自动修复。鉴于时刻对线上数据的敬畏之心,此功能具体修复逻辑,建议控制在业务所属领域內,ZZBCP平台只是一个触发修复的入口。
系统会将所有的规则信息上报到转转的监控系统(Prometheus- 转转进行了二次开发),对一些经常关注的指标进行统计上报。如规则命中统计,执行规则校验通过,执行校验未通过次数等。
后台配置提供了事件注册注册,报警相关配置和灰度以及手动执行规则等功能。方便业务快速的配置和测试自己的规则校验逻辑。
参考资料
https://www.infoq.cn/article/j*6vp2pbuggcrzbhcaog
https://tool.lu/en_US/deck/sw/detail?slide=8
文章名称:转转业务数据校验平台介绍
转载源于:http://www.shufengxianlan.com/qtweb/news19/332519.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联