我是靠谱客的博主 精明悟空,最近开发中收集的这篇文章主要介绍如何第一时间发现线上故障,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

 

 

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

 

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

 

 

该系统可能面临的挑战:

 

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

  • 多样化的数据来源

  • 海量的数据比对

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

 

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

 

某赞业务对账平台

 

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

 

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

 

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

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

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

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

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

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

 

阿里BCP核对平台

 

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

 

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

 

 

核心流程

 

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

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

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

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

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

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

 

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

 

 

往期推荐

 

  • 借助SPI 解决复杂业务扩展问题

  • 为什么企业更青睐SaaS架构

  • 电商交易系统核心技术

  • 一线电商平台架构方案汇总

  • 如何设计一个高并发网关

  • 如何解决分布式事务

 

 

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

最后

以上就是精明悟空为你收集整理的如何第一时间发现线上故障的全部内容,希望文章能够帮你解决如何第一时间发现线上故障所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部