背景
我们如果想设计一个 SQL 指标/规则 系统,应该有哪些核心能力?
基础
用户+权限管理
系统设置
一些系统级别的常量+枚举
app 管理
相关应用管理
数据源管理
人工维护数据源
前期不失为一种过渡方案
告警模板
所有的模板支持自定义
日志记录
审计日志留痕
方便查问题+找出变更记录
进阶
报警+报表+直发
报警就是报警
报表,额外查询内容
直发:查询内容直接发送出来
配置信息
定时全量加载
构建对应的 datasource 数据源,动态更新
性能问题
针对比较慢的SQL,执行时熔断
提前构建好数据源
添加适当的缓存
数据量问题
针对量特别大的请求,熔断
有效性问题
链接因为引入缓存
所以可以需要定期验证 connection 有效性,避免域名切换等问题,导致的不可用。
分布式调度问题
可以抢锁,一个人负责任务的分分配。
ipList: 1min 一次的心跳,只读取最近 5min 内有心跳的服务列表。
执行的时候,每台机器只执行属于自己的数据。
参考资料
无