22

如何第一时间发现线上故障

 4 years ago
source link: https://mp.weixin.qq.com/s/hy5jNCU7vWDQxU7dFG5WFw
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

现在的研发工作越来越难做了,996、007,有事没事就要来公司加个班已经成为家常便饭,好像非工作时间不来公司露个脸现个身,就显得不求上进。身体累,心更累,就怕哪一天,一不小心倒在工作岗位, VrM3MrY.png!webVrM3MrY.png!webVrM3MrY.png!web

这还不算够惨,哪天运气不佳,再来个客户投诉,给万恶的资本家找到由头,给你年终考核定个不及格,没有年终奖,卧槽,真是一年白干,欲哭无泪。有没有什么策略,可以规避这种问题。

线上问题大部分都是客户投诉上来的,根据问题的严重程度,影响着投诉面大小。如果有套监控系统(数据核对平台)就好了,可以第一时间发现问题,给自己预留较宽裕的缓冲时间,降低资损。也许等用户发现时,问题已经解决了。

beIFf2J.jpg!web

该系统可能面临的挑战:

  • 满足各种复杂的业务场景,插件化,支持快速接入

  • 多样化的数据来源

  • 海量的数据比对

  • 自定义延迟时间,周边配套化监控系统

下面提供几个不错的案例供大家参考学习

某赞业务对账平台

将核对流程拆分4步: 数据加载-->转换解析-->业务核对-->结果封装。

每一步定义好抽象接口规范,提供默认实现, 同时也支持业务团队二次开发, 以插件化动态接入能力,同时具有规则分发能力、流程的编排能力。

  • ResourceLoader:通过加载器工厂,加载不同来源的原始数据

  • Parser  :对原始数据模型转换。利用规则引擎,提供脚本化(Groovy)的转换方式。

  • Checker  :数据核对,支持 findFirst 、findFull 多种比对策略

  • ResultHandler  :结果处理,包括持久化存储、生成报表、报警邮件、甚至修复数据等等。

通过统一的 facade,将整个对账流程进行串联。在执行不同节点时,根据配置选择不同的默认组件或者插件来执行。可以在管理后台,对每个流程节点进行编排。

b6n63iu.jpg!web

整体上主要采用调度层+对账引擎(core+plugin)+基础设施的分层架构。调度层主要负责任务触发、任务拆分、调度;对账引擎则负责执行可编排的对账流程;基础设置层则提供规则引擎、流程引擎、泛化调用、监控等基础能力。

阿里BCP核对平台

BCP是一个统一的业务数据实时校验分析平台,通过接收实时消息进行相关的规则校验,抓取线上脏数据并报警, 防止异常业务数据扩散(客户投诉,后知后觉) ,保障数据稳定性。实时性可以做到秒级延迟,分钟级报警,并且可以实时在线统计,实时日志查看,mock测试,支持多种报表分析;支持延迟重试,异步检测,线上采样(按一定的比例来检测),规则脚本支持groovy/java语法。

数据核对,第一时间发现问题,并修复,提升用户体验!!!

vYvQzi7.png!web

核心流程

1、统一事件。 对多种数据源进行标准化数据转换处理,得到JsonObject标准对象

  • 不同的数据源提供不同的抽象接口,我们只需要实现扩展方法即可

  • 订阅管理。 bcp的消费组consumerID 订阅哪个topic,并绑定事件。 需要管理员审批。

2、规则过滤。 只处理自己关心的事件

3、执行器。 根据自己的业务诉求,编写核对代码。

4、结果存储。 用于报警、报表统计

对于数据变化量大的类型,只需采集其中一部分进行分析,所以系统提供了采样率设置。

YRNBBnf.jpg!web

关注公众号并回复  架构  领取,更多内容陆续奉上。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK