在软件开发的复杂世界中,数据库死锁往往是隐藏在数据操作深处的隐患,它们可能在任何时候无声无息地破坏系统的稳定性。在最新的测试中,测试工程师竟然意外发现了一个潜伏已久的数据库死锁问题。这个发现不仅展示了细致测试的重要性,也提醒我们即使是看似不起眼的系统异常,也可能是潜在大问题的冰山一角。在本文中,我们将深入探讨这个死锁是如何被发现的,以及我们可以从中学到的宝贵经验。
在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?由此我的Runner探索之旅开始了!测试生产监控发现数据库死锁报错:org.springframework.dao.DeadlockLoserDataAccessException:### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found测试是通过什么方式发现呢?
还要从前一段时间开始说起。
A:理赔系统上线后,不能进行生产验证,作为测试你要怎么避免生产问题呢
B:目前对生产的验证只能联系业务人员进行生产验证
A:那我们测试这边调研一下,看一下有什么方法
B:好的,我去看一下有没有适合的集团工具可以对生产异常数据进行统计
就是这样的一个对话,让我发现了EasyBI工具,和这个工具的缘分就开始了!
首先,给大家介绍一个这个工具,它可以做什么呢?它可以通过连接生产数据库或者接口开发的形式进行生产数据统计,以聚合表、透视表、柱状图、折线图、雷达图等进行图形化配置,并将整个数据情况都汇总到统一的监控调度中心。 EasyBI工具详细操作 理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕。首先,我根据自己系统的业务类型,开发了几个接口,生产数据异常的接口、生产理赔数量统计接口、生产TOP5理赔数据统计接口等。 然后,按照EasyBI工具使用文档进行了配置,详细操作请看以下分析。把开发的接口在EasyBI工具平台(EasyBI (jd.com))进行配置
创建应用,把配置好的接口数据以聚合表、柱状图、等进行图形化配置,以该形式展示监控数据
配置好应用后,对此应用进行邮件订阅,定时任务推送生产数据监控的结果
非车核心理赔数据统计接口:目前分为三类,分别是是错误信息统计接口、周失败和成功统计接口、日失败和成功统计接口。问题就是刚开始设计方案时直接通过对理赔数据库数据进行查询返回对应的结果,发现接口会出现超时情况,因为理赔错误数据统计时需要根据理赔时的保单号查询承保详情接口判断出是对应的商品计划存在,这个是第三方的接口不受自己控制。改进方案为通过定时任务把需要的数据先存储到对应的数据库,然后根据存储到数据库的数据进行校验,以此可以解决接口超时问题。我发现的数据库死锁就是通过错误信息统计接口发现的,看到统计出的结果出现。org.springframework.dao.DeadlockLoserDataAccessException:### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found这个非正常业务异常信息发现后和领导同步
A:哇哦!监控做的不错
B:会继续加油的
理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目基于检测到的数据库死锁问题,我发现不能实时的接收到异常数据的统计和监控,那么要怎么实时地处理呢?
B:我现在检测到的异常数据是通过EasyBI工具定时发送的,我怎么可以实时发现异常数据C:可以设定一个阈值,当异常数据超过这个阈值时,我们就判定为异常情况B:那是不是可以把这个异常情况通过京me告警发给相关人员呢开发一个接口,通过异常数据的统计值与阈值进行比较,如果大于阈值,就发送告警通知,收到的告警通知如下
上游系统传输了不支持的赔付信息,及时地通知到前端系统和相关业务打造SAAS化服务的会员徽章体系,可以作为标准的产品化方案统一对外输出。结合现有平台的通用能力,实现会员行为全路径覆盖,并能结合企业自身业务特点,规划相应的会员精准营销活动,提升会员忠诚度和业务的持续增长。底层能力:维护用户基础数据、行为数据建模、用户画像分析、精准营销策略的制定▪功能支撑:会员成长体系、等级计算策略、权益体系、营销底层能力支持
▪用户活跃:会员关怀、用户触达、活跃活动、业务线交叉获客、拉新促活