大数据平台测试-一次生产P2故障记录

项目介绍:某鉴权项目。公司为了数据安全,去年评审通过了一个基于中间件kafka的鉴权项目,大概的意思,消费topic的应用需要对接鉴权项目,订阅应用,启动端口9093消费(默认是9092端口),当时大家(开发)都觉得风险太大了,不适合接入公司核心kafka集群。万一出错影响太大。但是领导,技术委员会通过了,大家也没啥办法,谁叫大家都是执行者。。。

先看出现生产事故的java代码:

    @Overridepublic class process(WatchEvent event){Event.KeeperState state = event.getState();if(Event.KeeperState.SyncConnected = state)log.info("当前 Zookeeper 已连接")} else if(Event.KeeperState.DisConnected == state || Event.KeeperState.Expired == state)log.info(" XX项目服务端 和Zookeeper 断开连接,开始重连")try{client = new Zookeepe(servers, MAX_VALUE, null)// 这一行代码导致的故障// 其他逻辑} catch(...){// 手动抛异常} catch(...){// 手动抛异常} else{//...}

事故原因:XX鉴权模块存在bug,在ZK客户端和服务端失联时,处理逻辑中又创建了新的ZK连接,且未关闭旧的失效连接,短时间连接数量大量上升,引起Zookeeper集群压力过高,导致Zookeeper集群故障和kafka集群发生故障

分析:1、 开发时,开发不熟悉Zookeeper机制,process方法中已创建了连接,自己重新new 相当于不断地创建连接。而且还有一个大bug,连接没有关闭。。。

2、代码逻辑属于异常分支,开发和测试时都未测试,因为大家都觉得这一段代码都走不到,刚好运维把机器重启了,就走到这段逻辑了。。。

3、没有进行code review,技术负责人没有进行代码把关

4、代码属于一个紧急开关模块,该模块我们也以为是永远用不到的。。(数据库崩溃、服务崩溃。。。)

影响:影响公司核心业务,几万单,需要转人工处理,P2故障

后果:项目关停。。团队一年多的努力就这样白费了

总结:作为技术负责人,重要业务代码需进行详细的code review。作为测试,可以通过代码覆盖率工具看这段代码是否覆盖,未覆盖到的代码发到群里评审。另外,基于中间件的项目,风险是真的高。。。接入核心业务要慎重,谁能保证系统没有bug呢?但是有bug会对业务造成重大影响的项目还是要技术委员会做好把关

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/171234.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电力感知边缘计算网关产品设计方案-网关软件设计方案

网关采用网络协议和软件技术在通信网络中针对工业协议、互联网通用协议进行分析和记录,提升工业控制系统环境的安全防护能力。A类和B类网关采用容器技术的软件架构,采用C/S架构软件客户端提供应用软件平台,为管理员提供功能丰富的图形管理控制界面。 因A类和B类网关在产品定…

按需引入 ElMessage,没有样式且类型检查失败

文章目录 ElMessage 弹框没有样式问题描述解决方案 ts 类型检查失败问题描述解决办法 eslint 检查失败问题描述解决办法 ElMessage 弹框没有样式 问题描述 Element-plus 在使用 ElMessage 消息弹框的时候没有样式,按照官方的按需加载的方式引入的 import { ElMes…

AIGC ChatGPT4总结Linux Shell命令集合

在Linux中,Shell命令的数量非常庞大,因为Linux提供了各种各样的命令来处理系统任务。这些命令包括GNU核心工具集、系统命令、shell内置命令以及通过安装获得的第三方应用程序命令。以下是一些常见的Linux命令分类及其示例,但请注意,这不是一个全面的列表,因为列出所有命令…

Dempster-Shafer(D-S)证据理论的基本定义和详细分析,优点,缺点,应用!!(系列1)

文章目录 前言一、D-S证据理论的应用:二、D-S证据理论的优点:三、D-S证据理论的缺陷:四、D-S组合规则:总结 前言 Dempster-Shafer(D-S)证据理论是一种不精确推理理论,也称为Dempster/Shafer证据…

【开源】基于Vue+SpringBoot的农家乐订餐系统

项目编号: S 043 ,文末获取源码。 \color{red}{项目编号:S043,文末获取源码。} 项目编号:S043,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用户2.2 管理员 三、系统展示四、核…

Docker ps命令

docker ps:列出容器。 语法: docker ps [OPTIONS]OPTIONS说明: -a:显示所有的容器,包括未运行的。 -f:根据条件过滤显示的内容。 --format:指定返回值的模板文件。 -l:显示最近…

spark数据倾斜的解决思路

数据倾斜是:多个分区中,某个分区的数据比其他分区的数据多的多 数据倾斜导致的问题: 导致某个spark任务耗时较长,导致整个任务耗时增加,甚至出现OOM运行速度慢:主要发生在shuffle阶段,同样的k…

大数据数据仓库,Sqoop--学习笔记

数据仓库介绍 1. 数据仓库概念 数据仓库概念创始人在《建立数据仓库》一书中对数据仓库的定义是:数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、数据集成的(Integrated)、相对…

一、深入简出串口(USRT)通信——基本概念。

一、前言 串口到底是什么?简单来说一句话就可以解释,串口就是一种通信协议。 看到这里可能大家会觉得你这不是放屁么,说了跟没说一样。所以这里做前言来描述,大家要先对通信协议有一个下意识地认识才能在学习串口的时候不至于迷茫…

C#中的泛型

目录 一、泛型的类型参数T 二、创建泛型接口 1.接口及约束定义 2.示例 三、创建泛型方法 泛型是C# 和公共语言运行库(CLR)中的一个功能,这是一种可以使程序支持不同类型的技术。它将类型参数的概念引入.NET Framework中,类型…

Mybatis-plus常见标签

1.< 代表小于号&#xff08;<&#xff09;2.> 代表大于号&#xff08;>&#xff09;3.&le; 代表小于或等于符号&#xff08;≤&#xff09;4.&ge; 代表大于或等于符号&#xff08;≥&#xff09;5.< 代表<6.> 代表>7.ne; 代表不等于 <>8…

【图像加密】Arnold置乱和混沌加密-MATLAB代码

Arnold Arnold.m function [img_new] Arnold(a,b,h,w,n,img) % h64; % w64;img_new zeros(h,w) ; %[h, w]size(img) % a 5; % b 6; % n 16; %n为置乱轮数N h;for i1:nfor y1:hfor x1:wxxmod((x-1)b*(y-1),N)1; %a,b可提前指定yymod(a*(x-1)(a*…

LeetCode [简单] 160. 相交链表

给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回结果后&#xff0c;链表必须 保持其原始结构 。 160.…

【Flutter 常见问题系列 第 1 篇】Text组件 文字的对齐、数字和字母对齐中文

TextStyle中设置height参数即可 对齐的效果 Text的高度 是根据 height 乘于 fontSize 进行计算的、这里指定heiht即可、不指定的会出现 无法对齐的情况&#xff0c;如下&#xff1a; 这种就是无法对齐的情况

Qt4用子类化ProxyModel和子类化MainWindow实现全表筛选,中文排序和复制粘贴

目录 1 需求 2 子类化ProxyModel实现全表筛选 3 字符串列表实现中文排序 3.1 Qt5中文排序 3.2 Qt4排序 4 表格的复制粘贴 5 应用 1 需求 模型视图编程是Qt开发的基本功&#xff0c;其中有几个关键问题需要解决&#xff1a; 全表筛选&#xff0c;或者说多列搜索中文排序…

Linux服务器SSH客户端断开后保持程序继续运行的方法

目录 1. nohup 命令&#xff1a; 2. tmux 或 screen&#xff1a; 3 final shell 断开后服务器如何继续执行令&#xff1f; 方法一&#xff1a;使用 nohup 命令 方法二&#xff1a;将命令放在后台执行 4 你可以使用 jobs 命令查看当前终端中正在后台运行的任务 &#xff…

决策树(第四周)

一、决策树基本原理 如下图所示&#xff0c;是一个用来辨别是否是猫的二分类器。输入值有三个&#xff08;x1&#xff0c;x2&#xff0c;x3&#xff09;&#xff08;耳朵形状&#xff0c;脸形状&#xff0c;胡须&#xff09;&#xff0c;其中x1{尖的&#xff0c;圆的}&#xf…

叠加原理(superposition principle)、线性系统

叠加原理&#xff08;superposition principle&#xff09;&#xff1a;指对一个系统而言&#xff0c;两个或多个输入产生的输出&#xff0c;等于这几个输入单独引起的输出的和&#xff0c;即输入的叠加等于各输入单独引起的输出的叠加。 线性系统&#xff1a;一个系统&#x…

Centos 7 更改 PostgreSQL 14 默认存储路径

前言&#xff1a; 默认PostgreSQL数据存储路径为&#xff1a;/var/lib/pgsql/14/data 迁移到新的存储路径&#xff1a;/mnt/postgresql/data 1、关闭PostgreSQL服务 systemctl stop postgresql-142、创建目录 # 创建新目录 mkdir -p /mnt/postgresql/data# 更改目录权限 chow…

vscode中pylance无法显示outline无法跳转

当打开的workspce中有较多的文件时&#xff0c;pylance需要分析的文件太多&#xff0c;导致卡住&#xff0c;无法分析到对应的python文件 常见的情况是&#xff0c;当我们在workspace中包含了data文件夹&#xff08;通常是通过软连接方式把数据集链接过来&#xff09;&#xf…