- 简介
- 项目结构
- 核心组件
- 架构总览
- 详细组件分析
- 依赖关系分析
- 性能与扩展性
- 故障排查指南
- 结论
- 附录
本文件围绕黑名单模块的“基础 CRUD 操作”展开,覆盖黑名单配置的创建、更新、删除、查询等核心能力;同时明确 API 设计规范(HTTP 方法、URL 路径、请求参数、响应格式)、业务校验规则(包名限制、版本号校验、必填字段检查)、数据持久化机制(MySQL 主表与子表、TDengine 统计明细、Redis 缓存与分布式锁)、以及常见使用场景与排障建议。目标是帮助开发者快速理解并正确使用黑名单基础功能。
项目结构
黑名单模块采用“API 层-服务层-数据访问层”的分层架构,配合 Redis 缓存、分布式锁、审批流(BPM)与导出任务队列,形成完整的黑名单配置与执行控制链路。
Mermaid Diagram Code:
graph TB
subgraph "API 层"
C["AppBlacklistedController<br/>REST 控制器"]
end
subgraph "服务层"
S["AppBlacklistedService<br/>接口"]
SI["AppBlacklistedServiceImpl<br/>实现"]
end
subgraph "数据访问层"
M["AppBlacklistedMapper<br/>主表"]
CM["FlowBlacklistedChannelMapper<br/>渠道子表"]
MM["FlowBlacklistedMacMapper<br/>MAC 子表"]
DM["FlowBlacklistedDeviceMapper<br/>设备明细子表"]
TK["AppKillRecordMapper<br/>TDengine 杀死明细"]
end
subgraph "基础设施"
R["Redis 缓存/分布式锁"]
E["导出任务队列"]
B["审批流(BPM)"]
end
C --> S
S --> SI
SI --> M
SI --> CM
SI --> MM
SI --> DM
SI --> TK
SI --> R
SI --> E
SI --> B
图表来源
章节来源
核心组件
- 控制器层:提供 REST API,负责权限校验、参数校验、调用服务层并返回统一响应。
- 服务层:定义黑名单配置及其子表(渠道、MAC、国家)的增删改查、审批流集成、导出任务、缓存与分布式锁等。
- 数据访问层:MyBatis Mapper 负责 MySQL 主子表;TDengine Mapper 负责“杀死(闪退)”明细统计。
- 枚举与常量:API 前缀、版本、黑名单类型、错误码等。
章节来源
架构总览
黑名单基础操作贯穿“控制器-服务-数据访问-基础设施”,并结合审批流与导出任务,形成闭环。
Mermaid Diagram Code:
sequenceDiagram
participant U as "客户端"
participant C as "AppBlacklistedController"
participant S as "AppBlacklistedService"
participant SI as "AppBlacklistedServiceImpl"
participant DB as "MySQL 主子表"
participant T as "TDengine 杀死明细"
participant R as "Redis 缓存/锁"
U->>C : 发起请求(创建/更新/删除/查询)
C->>C : 权限校验/参数校验
C->>S : 调用服务层方法
S->>SI : 业务处理(事务/缓存/锁/BPM)
SI->>DB : 读写主子表
SI->>T : 写入杀死明细(按需)
SI->>R : 缓存/分布式锁
SI-->>C : 返回结果
C-->>U : 统一响应
图表来源
详细组件分析