当前位置: 首页 > news >正文

通用业务平台设计(五):预警平台建设

前言

  • 在上家公司,随着业务的不断拓展(从支持单个国家单个主体演变成支持多个国家多个主体),对预警的诉求越来越紧迫;
  • 如何保障业务的稳定性那?预警可以帮我们提前甄别风险,从而让我们可以在风险来临前将其消灭;
  • 每个业务组写自己的报警规则会极大的降低开发效率,于是我们设计一套通用的预警平台来解该问题;

通用业务平台系列

  • 通用业务平台设计(一):概览
  • 通用业务平台设计(二):扩展多国家业务
  • 通用业务平台设计(三):自动化打包平台建设
  • 通用业务平台设计(四):灰度发布架构升级
  • 通用业务平台设计(五):预警平台建设

学习完这篇文章你将收获什么

适合哪类人学

  • 后端开发(无论你是刚入门小白还是资深开发都能从中有所受益)
  • 运维(无论你是刚入门小白还是资深运维都能从中有所受益)

你将收获什么

  • 预警平台架构如何设计

预警平台设计

场景数据获取架构图

在这里插入图片描述

报警规则过滤架构图

在这里插入图片描述

记录待发送报警架构图

在这里插入图片描述

报警发送

在这里插入图片描述

涉及数据库脚本

预警平台相关脚本

-- 报警渠道信息
CREATE TABLE `monitor_channel` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`channel_no` varchar(32) DEFAULT NULL COMMENT '渠道编码',`channel_name` varchar(20) DEFAULT NULL COMMENT '通道名称',`type` int(2) DEFAULT '0' COMMENT '渠道类型:0企业微信;1邮箱;2钉钉',`sort` decimal(4,2) DEFAULT NULL COMMENT '排序(越大越靠前);支持正负数,支持两位整数两位小数',  `status` int(2) DEFAULT '0' COMMENT '状态(0启用 1停用 2作废)', `remark` varchar(20) DEFAULT NULL COMMENT '备注',`create_uid` varchar(32) DEFAULT NULL COMMENT '创建人ID 系统初始化为 -1',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',`update_uid` varchar(32) DEFAULT NULL COMMENT '修改人ID 系统修改为 -1',`update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',`param1` int(2) DEFAULT NULL COMMENT '预留字段1',`param2` int(4) DEFAULT NULL COMMENT '预留字段2',`param3` int(11) DEFAULT NULL COMMENT '预留字段3',`param4` varchar(32) DEFAULT NULL COMMENT '预留字段4',`param5` varchar(64) DEFAULT NULL COMMENT '预留字段5',`param6` varchar(128) DEFAULT NULL COMMENT '预留字段6',PRIMARY KEY (`id`),UNIQUE KEY `uk_monitor_channel_cno` (`channel_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报警渠道表';-- 报警渠道明细表
CREATE TABLE `monitor_channel_detail` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`channel_no` varchar(32) DEFAULT NULL COMMENT '渠道编码',  `data_key` varchar(128) DEFAULT NULL COMMENT '数据项key',`data_value` varchar(128) DEFAULT NULL COMMENT '数据项value',`data_remark` varchar(20) DEFAULT NULL COMMENT '数据项说明',    `status` int(2) DEFAULT '0' COMMENT '状态(0启用 1停用 2作废)', `create_uid` varchar(32) DEFAULT NULL COMMENT '创建人ID 系统初始化为 -1',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',`update_uid` varchar(32) DEFAULT NULL COMMENT '修改人ID 系统修改为 -1',`update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',`param1` int(2) DEFAULT NULL COMMENT '预留字段1',`param2` int(4) DEFAULT NULL COMMENT '预留字段2',`param3` int(11) DEFAULT NULL COMMENT '预留字段3',`param4` varchar(32) DEFAULT NULL COMMENT '预留字段4',`param5` varchar(64) DEFAULT NULL COMMENT '预留字段5',`param6` varchar(128) DEFAULT NULL COMMENT '预留字段6',PRIMARY KEY (`id`),UNIQUE KEY `uk_monitor_channel_detail_cds` (`channel_no`,`data_key`,`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报警渠道表';-- 报警路由表
CREATE TABLE `monitor_routing` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',`routing_no` varchar(32) NOT NULL COMMENT '路由编号',`country_no` varchar(32) NOT NULL COMMENT '国家编号',`country_name` varchar(32) NOT NULL COMMENT '国家名称',`info_type` int(2) DEFAULT NULL COMMENT '报警场景类型:0验证类短信成功率;',`channel_no` varchar(32) DEFAULT NULL COMMENT '渠道编码',`channel_name` varchar(20) DEFAULT NULL COMMENT '通道名称',  `sort` decimal(4,2) DEFAULT NULL COMMENT '排序(越大越靠前);支持正负数,支持两位整数两位小数',`status` int(2) DEFAULT '0' COMMENT '状态(0启用 1停用 2作废)',`create_uid` varchar(32) DEFAULT NULL COMMENT '创建人ID',`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_uid` varchar(32) DEFAULT NULL COMMENT '修改人ID',`update_time` timestamp NULL DEFAULT NULL COMMENT '修改时间',`param1` int(2) DEFAULT NULL COMMENT '预留字段1',`param2` int(4) DEFAULT NULL COMMENT '预留字段2',`param3` int(11) DEFAULT NULL COMMENT '预留字段3',`param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',`param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',`param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',PRIMARY KEY (`id`),UNIQUE KEY `uk_monitor_routing_rt_no` (`routing_no`),UNIQUE KEY `uk_monitor_routing_cno_cpno_status_type` (`country_no`,`channel_no`,`status`,`info_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报警路由表';-- 报警模板表
CREATE TABLE `monitor_mod` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`mod_no` varchar(32) DEFAULT NULL COMMENT '模板编码',`title` varchar(20) DEFAULT NULL COMMENT '标题',`status` int(2) DEFAULT '0' COMMENT '状态(0启用 1停用 2作废)',`content` varchar(512) DEFAULT NULL COMMENT '报警模板内容',`content_chinese` varchar(512) DEFAULT NULL COMMENT '报警模板内容对应中文',`info_type` int(2) DEFAULT NULL COMMENT '报警场景类型:0验证类短信成功率;',`send_type` int(2) DEFAULT NULL COMMENT '发送类型【1实时 2定时】',  `remark` varchar(20) DEFAULT NULL COMMENT '备注',`create_uid` varchar(32) DEFAULT NULL COMMENT '创建人ID',`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_uid` varchar(32) DEFAULT NULL COMMENT '修改人ID',`update_time` timestamp NULL DEFAULT NULL COMMENT '修改时间',`param1` int(2) DEFAULT NULL COMMENT '预留字段1',`param2` int(4) DEFAULT NULL COMMENT '预留字段2',`param3` int(11) DEFAULT NULL COMMENT '预留字段3',`param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',`param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',`param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',PRIMARY KEY (`id`),UNIQUE KEY `uk_monitor_mod_mno` (`mod_no`),KEY `key_monitor_mod_info_type` (`info_type`),KEY `key_monitor_mod_info_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报警模板表';-- 报警国家模板对应关系表
CREATE TABLE `monitor_country_mod` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`bu_no` varchar(32) DEFAULT NULL COMMENT '业务编码',`country_no` varchar(32) DEFAULT NULL COMMENT '国家编码',`country_name` varchar(32) DEFAULT NULL COMMENT '国家名称',`mod_no` varchar(32) DEFAULT NULL COMMENT '报警模板编码',`info_type` int(2) DEFAULT NULL COMMENT '报警场景类型:0验证类短信成功率;',`status` int(2) DEFAULT '0' COMMENT '状态(0启用 1停用 2作废)',`remark` varchar(20) DEFAULT NULL COMMENT '备注',`create_uid` varchar(32) DEFAULT NULL COMMENT '创建人ID',`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`update_uid` varchar(32) DEFAULT NULL COMMENT '修改人ID',`update_time` timestamp NULL DEFAULT NULL COMMENT '修改时间',`param1` int(2) DEFAULT NULL COMMENT '预留字段1',`param2` int(4) DEFAULT NULL COMMENT '预留字段2',`param3` int(11) DEFAULT NULL COMMENT '预留字段3',`param4` varchar(32) DEFAULT NULL COMMENT '预留字段4',`param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',`param6` varchar(128) DEFAULT NULL COMMENT '预留字段6',PRIMARY KEY (`id`),UNIQUE KEY `uk_monitor_country_mod_bu_no` (`bu_no`),UNIQUE KEY `uk_monitor_country_mod_cno_mno_itype_status` (`country_no`,`mod_no`,`info_type`,`status`)  
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报警的国家模板对应表';-- 预警规则路由表
CREATE TABLE `monitor_rule_route` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`bu_no` varchar(32) DEFAULT NULL COMMENT '业务编码',`info_type` int(2) DEFAULT NULL COMMENT '报警场景类型:0验证类短信成功率;',`country_no` varchar(32) DEFAULT NULL COMMENT '国家编码',    `rule_no` varchar(32) DEFAULT NULL COMMENT '规则编码',`sort` decimal(4,2) DEFAULT NULL COMMENT '排序(越大越靠前);支持正负数,支持两位整数两位小数',`status` int(2) DEFAULT '0' COMMENT '状态 0启用 1停用',`remark` varchar(20) DEFAULT NULL COMMENT '备注',  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',  `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',`param1` int(2) DEFAULT NULL COMMENT '预留字段1',`param2` int(4) DEFAULT NULL COMMENT '预留字段2',`param3` int(11) DEFAULT NULL COMMENT '预留字段3',`param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',`param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',`param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',PRIMARY KEY (`id`),UNIQUE KEY `uk_monitor_rule_route_bno` (`bu_no`)  
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警规则路由表';-- 预警规则表
CREATE TABLE `monitor_rule` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`rule_no` varchar(32) DEFAULT NULL COMMENT '规则编码',      `sort` decimal(4,2) DEFAULT NULL COMMENT '排序(越大越靠前);支持正负数,支持两位整数两位小数',`fun_code` varchar(64) DEFAULT NULL COMMENT '表达式',`fun_desc` varchar(64) DEFAULT NULL COMMENT '表达式描述',`threshold_val` varchar(255) DEFAULT NULL COMMENT '阈值', `status` int(2) DEFAULT '0' COMMENT '状态 0启用 1停用',`remark` varchar(20) DEFAULT NULL COMMENT '备注',  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',  `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',`param1` int(2) DEFAULT NULL COMMENT '预留字段1',`param2` int(4) DEFAULT NULL COMMENT '预留字段2',`param3` int(11) DEFAULT NULL COMMENT '预留字段3',`param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',`param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',`param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',PRIMARY KEY (`id`),UNIQUE KEY `uk_monitor_rule_rno` (`rule_no`)  
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警规则表';-- 报警发送表
CREATE TABLE `monitor_send_log` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`sl_no` varchar(32) DEFAULT NULL COMMENT '业务编码',`country_no` varchar(32) DEFAULT NULL COMMENT '国家编码',`channel_product_no` varchar(32) DEFAULT NULL COMMENT '渠道产品编码',`mod_no` varchar(32) DEFAULT NULL COMMENT '报警模板编码',  `content` varchar(255) DEFAULT NULL COMMENT '内容中变量【多个以;为分割】',`info_type` int(2) DEFAULT NULL COMMENT '报警场景类型:0验证类短信成功率;',    `expect_send_time` timestamp NULL DEFAULT NULL COMMENT '预计报警发送时间',`reality_send_time` timestamp NULL DEFAULT NULL COMMENT '实际报警发送时间',`status` int(2) DEFAULT NULL COMMENT '发送状态:0待发送;1发送成功;2发送失败', `retry_times` int(2) DEFAULT '2' COMMENT '剩余重试次数', `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',`update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',`param1` int(2) DEFAULT NULL COMMENT '预留字段1',`param2` int(4) DEFAULT NULL COMMENT '预留字段2',`param3` int(11) DEFAULT NULL COMMENT '预留字段3',`param4` varchar(32) DEFAULT NULL COMMENT '预留字段4',`param5` varchar(64) DEFAULT NULL COMMENT '预留字段5',`param6` varchar(128) DEFAULT NULL COMMENT '预留字段6',PRIMARY KEY (`id`),UNIQUE KEY `uk_monitor_send_log_slno` (`sl_no`),UNIQUE KEY `uk_monitor_send_log_cno_itype_estime` (`country_no`,`info_type`,`expect_send_time`),KEY `key_monitor_send_log_cno` (`country_no`),KEY `key_monitor_send_log_chpno` (`channel_product_no`),KEY `key_monitor_send_log_exstime` (`expect_send_time`),KEY `key_monitor_send_log_status` (`status`),KEY `key_monitor_send_log_retimes` (`retry_times`),KEY `key_monitor_send_log_create_time` (`create_time`)  
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报警发送记录表';-- 报警发送历史表
CREATE TABLE `monitor_send_log_hist` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`sl_no` varchar(32) DEFAULT NULL COMMENT '业务编码',`country_no` varchar(32) DEFAULT NULL COMMENT '国家编码',`channel_product_no` varchar(32) DEFAULT NULL COMMENT '渠道产品编码',`mod_no` varchar(32) DEFAULT NULL COMMENT '报警模板编码',  `content` varchar(255) DEFAULT NULL COMMENT '内容中变量【多个以;为分割】',`info_type` int(2) DEFAULT NULL COMMENT '报警场景类型:0验证类短信成功率;',    `expect_send_time` timestamp NULL DEFAULT NULL COMMENT '预计报警发送时间',`reality_send_time` timestamp NULL DEFAULT NULL COMMENT '实际报警发送时间',`status` int(2) DEFAULT NULL COMMENT '发送状态:0待发送;1发送成功;2发送失败', `retry_times` int(2) DEFAULT '2' COMMENT '剩余重试次数', `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',`update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',`param1` int(2) DEFAULT NULL COMMENT '预留字段1',`param2` int(4) DEFAULT NULL COMMENT '预留字段2',`param3` int(11) DEFAULT NULL COMMENT '预留字段3',`param4` varchar(32) DEFAULT NULL COMMENT '预留字段4',`param5` varchar(64) DEFAULT NULL COMMENT '预留字段5',`param6` varchar(128) DEFAULT NULL COMMENT '预留字段6',PRIMARY KEY (`id`),KEY `uk_monitor_send_log_hist_slno` (`sl_no`),KEY `key_monitor_send_log_hist_cno` (`country_no`),KEY `key_monitor_send_log_hist_chpno` (`channel_product_no`),KEY `key_monitor_send_log_hist_exstime` (`expect_send_time`),KEY `key_monitor_send_log_hist_status` (`status`),KEY `key_monitor_send_log_hist_retimes` (`retry_times`),KEY `key_monitor_send_log_hist_create_time` (`create_time`)  
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报警发送记录历史表';

业务系统相关脚本

-- 预警历史数据表
CREATE TABLE `monitor_hist_data` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`bu_no` varchar(32) DEFAULT NULL COMMENT '业务编码',`info_type` int(2) DEFAULT NULL COMMENT '场景类型:0验证类短信成功率;1活体成功率;',`begin_time` timestamp NULL DEFAULT NULL COMMENT '数据统计开始时间',`end_time` timestamp NULL DEFAULT NULL COMMENT '数据统计结束时间',`numerator_count` int(4) DEFAULT NULL COMMENT '统计时间段分子数量',`denominator_count` int(4) DEFAULT NULL COMMENT '统计时间段分母数量',        `rate` decimal(8,4) DEFAULT NULL COMMENT '统计时间段比例(统计时间段分子数量/统计时间段分母数量)',`remark` varchar(20) DEFAULT NULL COMMENT '备注',  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',  `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',`param1` int(2) DEFAULT NULL COMMENT '预留字段1',`param2` int(4) DEFAULT NULL COMMENT '预留字段2',`param3` int(11) DEFAULT NULL COMMENT '预留字段3',`param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',`param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',`param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',PRIMARY KEY (`id`),UNIQUE KEY `uk_monitor_record_bno` (`bu_no`),UNIQUE KEY `uk_monitor_record_itype_btime_etime` (`info_type`,`begin_time`,`end_time`),KEY `monitor_hist_data_btime` (`begin_time`),KEY `monitor_hist_data_etime` (`end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警历史信息统计表';-- 预警记录表
CREATE TABLE `monitor_record` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`bu_no` varchar(32) DEFAULT NULL COMMENT '业务编码',`info_type` int(2) DEFAULT NULL COMMENT '报警场景类型:0验证类短信成功率;1活体成功率;',`country_no` varchar(32) DEFAULT NULL COMMENT '国家编码',`begin_time` timestamp NULL DEFAULT NULL COMMENT '统计数据开始时间',`end_time` timestamp NULL DEFAULT NULL COMMENT '统计数据结束时间',`content` varchar(1024) DEFAULT NULL COMMENT '报警内容多个以英文分号进行分割',        `compare_val` varchar(512) DEFAULT NULL COMMENT '对比项值',   `rule_retry_time` int(2) DEFAULT '2' COMMENT '调用报警规则剩余重试次数',`send_retry_time` int(2) DEFAULT '2' COMMENT '调用报警记录剩余重试次数',`status` int(2) DEFAULT '0' COMMENT '状态 0待调用报警规则 1调用报警规则失败 2调用报警规则成功且不需要报警 3调用报警规则成功且需要报警 4调用报警记录成功 5调用报警记录失败',   `remark` varchar(20) DEFAULT NULL COMMENT '备注',  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',  `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',`param1` int(2) DEFAULT NULL COMMENT '预留字段1',`param2` int(4) DEFAULT NULL COMMENT '预留字段2',`param3` int(11) DEFAULT NULL COMMENT '预留字段3',`param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',`param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',`param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',PRIMARY KEY (`id`),UNIQUE KEY `uk_monitor_record_bno` (`bu_no`),UNIQUE KEY `uk_monitor_record_type_cno_btime_etime` (`info_type`,`country_no`,`begin_time`,`end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警信息记录表';-- 预警基本信息统计表
CREATE TABLE `monitor_basic_data` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`group_no` varchar(32) DEFAULT NULL COMMENT '组编码',`country_name` varchar(20) DEFAULT NULL COMMENT '国家名称',`begin_time` timestamp NULL DEFAULT NULL COMMENT '数据统计开始时间',`end_time` timestamp NULL DEFAULT NULL COMMENT '数据统计结束时间',`info_type` int(2) DEFAULT NULL COMMENT '类型:0催收',  `status` int(2) DEFAULT '0' COMMENT '状态 0待生成excel上传oss 1上传oss成功 2上传oss失败',`file_url` varchar(255) DEFAULT NULL COMMENT '文件OSS的url地址',`retry_time` int(2) DEFAULT '2' COMMENT '剩余重试次数',`remark` varchar(20) DEFAULT NULL COMMENT '备注',  `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',  `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',`param1` int(2) DEFAULT NULL COMMENT '预留字段1',`param2` int(4) DEFAULT NULL COMMENT '预留字段2',`param3` int(11) DEFAULT NULL COMMENT '预留字段3',`param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',`param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',`param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',PRIMARY KEY (`id`),UNIQUE KEY `uk_monitor_basic_data_gno` (`group_no`),UNIQUE KEY `uk_monitor_basic_data_cn_btime_etime` (`country_name`,`begin_time`,`end_time`),KEY `key_monitor_basic_data_btime` (`begin_time`),KEY `key_monitor_basic_data_etime` (`end_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警基本信息统计表';-- 预警基本信息详细统计表
CREATE TABLE `monitor_basic_data_item` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`group_no` varchar(32) DEFAULT NULL COMMENT '组编码',`case_id` varchar(32) DEFAULT NULL COMMENT '订单号',`external_no` varchar(128) DEFAULT NULL COMMENT '外部流水号(第三方交易流水号)',`repayment_money` decimal(20,8) DEFAULT NULL COMMENT '应还金额',`practical_repayment_money` decimal(20,8) DEFAULT NULL COMMENT '金额',`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',  `update_time` timestamp NULL DEFAULT NULL COMMENT '更新时间',`param1` int(2) DEFAULT NULL COMMENT '预留字段1',`param2` int(4) DEFAULT NULL COMMENT '预留字段2',`param3` int(11) DEFAULT NULL COMMENT '预留字段3',`param4` varchar(20) DEFAULT NULL COMMENT '预留字段4',`param5` varchar(32) DEFAULT NULL COMMENT '预留字段5',`param6` varchar(64) DEFAULT NULL COMMENT '预留字段6',PRIMARY KEY (`id`),KEY `key_monitor_basic_data_item_gno` (`group_no`)  
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='预警基本信息详细统计表';

总结

  • 预警平台的建设远超预期,多次提前预警风险,从而避免故障发生
  • 预警平台投入使用推广,获得了业务团队的一致好评
  • 当业务发展一定规模后,公司在竞争中获胜的一个很关键因素在于谁更少的犯错,建立一个提前甄别风险的系统是必要的

相关文章:

通用业务平台设计(五):预警平台建设

前言 在上家公司,随着业务的不断拓展(从支持单个国家单个主体演变成支持多个国家多个主体),对预警的诉求越来越紧迫;如何保障业务的稳定性那?预警可以帮我们提前甄别风险,从而让我们可以在风险来临前将其消灭&#xff…...

Windows openssl-1.1.1d vs2017编译

工具: 1. perl(https://strawberryperl.com/) 2. nasm(https://nasm.us/) 3. openssl源码(https://www.openssl.org/) 可以自己去下载 或者我的网盘提供下载: 链接:…...

【深蓝学院】手写VIO第2章--IMU传感器--笔记

0. 内容 1. 旋转运动学 角速度的推导: 左ω∧\omega^{\wedge}ω∧,而ω\omegaω是在z轴方向运动,θ′[0,0,1]T\theta^{\prime}[0,0,1]^Tθ′[0,0,1]T 两边取模后得到结论: 线速度大小半径 * 角速度大小 其中,对旋转矩…...

网络基础(二)之HTTP与HTTPS

应用层 再谈 "协议" 协议是一种 "约定". socket api的接口, 在读写数据时, 都是按 "字符串" 的方式来发送接收的. 如果我们要传输一些"结构化的数据" 怎么办呢? 为什么要转换呢? 如果我们将struct message里面的信息…...

Python每日一练(20230306)

目录 1. 翻转二叉树 ★★ 2. 最长公共前缀 ★★ 3. 2的幂 ★ 1. 翻转二叉树 翻转一棵二叉树。 示例 1: 输入: 4/ \2 7/ \ / \ 1 3 6 9 输出: 4/ \7 2/ \ / \ 9 6 3 1示例 2: 输入: 1…...

C/C++每日一练(20230305)

目录 1. 整数分解 ☆ 2. 二叉树的最小深度 ★★ 3. 找x ★★ 1. 整数分解 输入一个正整数,将其按7进制位分解为各乘式的累加和。 示例 1: 输入:49 输出:497^2示例 2: 输入:720 输出:720…...

SAS字典的应用

数据字典中常用信息检索DICTIONARY.COLUMNS、DICTIONARY.TABLES以及DICTIONARY.MEMBERS等字典表的内容。在编程实践中,如何以SAS字典表来提高效率。 1、DICTIONARY.COLUMNS 对于当前SAS任务的全部数据集,表格DICTIONARY.COLUMNS包含了诸如变量的名称、类…...

Mysql中的函数和触发器

函数函数是什么?多用于查询语句,实现了某种功能;用途与存储过程不同,但语法是类似的;函数语法create function 函数名([参数列表]) returns 数据类型 begin DECLARE 变量; sql 语句; return 值; end; 设置函…...

分布式架构之(Zookeeper原理)

Zookeeper是一个典型的分布式数据一致性的结局方案,分布式应用程序可以基于它实现注入数据发布、订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能, Zookeeper可以保证如下分布式一致性特性: 顺…...

Java框架学习 | MyBatis

问题导向学习MyBatis 为什么要有MyBatis框架? 避免Java开发者直接使用 JDBC重复做数据库操作,同时更便捷地实现想要的数据库相关功能,让Java专注于开发业务。 MyBatis框架如何实现该目的? MyBatis是半自动化持久层ORM框架&#x…...

Cookie+Session详解

文章目录批量删除会话技术简介CookieCookie 查看Cookie 的删除Cookie 使用页面获取 cookie 信息cookie 特点Sessionsession 的使用Session 登录权限验证过滤器简介过滤器的使用WebFilter 注解过滤放行登录权限验证批量删除 servlet 类 dao 层 会话技术 简介 在计算机领域…...

CAPL脚本要注意区分elcount和strlen求数组长度的区别,不然要吃大亏

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…...

CSS常用选择器

目录 1.CSS是什么 2.CSS的三种写法 2.1内部样式 2.2内联样式 2.3外部样式 3.CSS选择器 3.1标签选择器 3.2类选择器(更好的选择) 3.3ID选择器 3.4后代选择器 3.5子选择器 3.6并集选择器 3.7伪类选择器(复合选择器的特殊用法) 1.CSS是什么 CSS全称Cascding Style Sh…...

Registry与DGC的攻击利用

0x01 2022-02-03写的一篇文章。 0x02 Registry Registry指的是RMI的注册表,攻击的目标是注册表所在的机器,一般注册表和RMI Server在同一个机器上,特殊情况下也会在不同机器上。 在我们通过LocateRegistry#getRegistry获取到目标开启的注…...

赛道持续降温!又一家自动驾驶公司裁员,市值曾超50亿美元

从去年下半年开始,自动驾驶赛道的裁员、倒闭风潮盛行。 本周,美股卡车自动驾驶上市公司Embark Trucks(EMBK)宣布将裁员70%,同时大幅缩减业务。“痛苦可能还没有结束,”公司首席执行官Alex Rodrigues在给员…...

路径规划 | 图解动态A*(D*)算法(附ROS C++/Python/Matlab仿真)

目录0 专栏介绍1 什么是D*算法?2 D*算法核心概念一览3 D*算法流程图4 步步图解:算法实例5 算法仿真与实现5.1 ROS C实现5.2 Python实现0 专栏介绍 🔥附C/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详…...

GraphCut、最大流最小割定理

G(V,E);V为点集,E为边集; 节点集V中的节点分为: (1)终端节点。不包含图像像素,用S和T表示。S为源点,T为汇点。图像分割中通常用S表示前景目标&a…...

Word文档的密码忘记了怎么办?

Word文档可以设置两种密码,文件的“限制密码”和“打开密码”,今天来分享一下忘记这两种密码可以如何处理。 如果忘记的是Word文档的“限制密码”,文档就无法编辑及更改了,菜单目录中的相关选项也都是灰色状态,无法点…...

Java分布式事务(二)

文章目录🔥分布式事务处理_认识本地事务🔥关系型数据库事务基础_并发事务带来的问题🔥关系型数据库事务基础_MySQL事务隔离级别🔥MySQL事务隔离级别_模拟异常发生之脏读🔥MySQL事务隔离级别_模拟异常发生之不可重复读&…...

游戏项目中的程序化生成(PCG):算法之外的问题与问题

本篇讨论的是什么 从概念上讲,PCG(程序化生成)的含义很广:任何通过规则计算得到的内容,都可算作是PCG。但在很多游戏项目的资料,包括本篇,讨论PCG时特指是:用一些算法/工具(特别是H…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】

大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...

高防服务器价格高原因分析

高防服务器的价格较高,主要是由于其特殊的防御机制、硬件配置、运营维护等多方面的综合成本。以下从技术、资源和服务三个维度详细解析高防服务器昂贵的原因: 一、硬件与技术投入 大带宽需求 DDoS攻击通过占用大量带宽资源瘫痪目标服务器,因此…...

node.js的初步学习

那什么是node.js呢? 和JavaScript又是什么关系呢? node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说, 需要在node.js的环境上进行当JavaScript作为前端开发语言来说,需要在浏览器的环境上进行 Node.js 可…...