跳到主要内容

黑名单卸载/杀死明细管理

核心概念:黑名单管理 | 黑名单卸载/杀死明细管理 | 概览

黑名单卸载/杀死明细管理是APP卸载配置管理的一个子模块,用于查询和统计该APP在设备上的实际卸载或被杀死(Kill)的记录。数据来源于设备端通过 HTTP 接口上报的实时事件,经过 Kafka 消息队列异步处理后入库。


核心概念:黑名单管理 | 黑名单卸载/杀死明细管理 | 功能说明

功能说明

在此模块中,您可以:

  • 查看该APP在各个设备上的卸载或杀死记录
  • 根据MAC地址、CPU信息等条件进行查询
  • 导出卸载/杀死明细记录

核心概念:黑名单管理 | 黑名单卸载/杀死明细管理 | 界面概览

界面概览

黑名单卸载/杀死明细管理的界面如下:

黑名单卸载/杀死明细列表


核心概念:黑名单管理 | 黑名单卸载/杀死明细管理 | 字段说明

字段说明

以下是黑名单卸载/杀死明细管理中各字段的详细说明:

字段名称字段说明
MAC设备的MAC地址
CPU设备的CPU ID
设备端记录的事件ID设备端上报的事件唯一标识
杀死次数APP被杀死的次数(仅在特定类型下显示)
杀死时间APP被杀死的时间(设备时间)(仅在特定类型下显示)
卸载时间APP被卸载的时间(设备时间)(仅在特定类型下显示)
创建时间记录上报的时间

核心概念:黑名单管理 | 黑名单卸载/杀死明细管理 | 操作说明

操作说明

以下是黑名单卸载/杀死明细管理的具体操作说明。


核心概念:黑名单管理 | 黑名单卸载/杀死明细管理 | 查询明细

查询明细

在黑名单卸载/杀死明细管理中,可以使用以下条件进行查询:

  1. 在黑名单卸载/杀死明细管理标签页中,可以使用以下条件进行查询:

    • MAC:输入设备MAC地址进行查询
    • CPU:输入设备CPU ID进行查询
    • 创建时间:选择时间范围进行查询
    • 杀死时间:选择时间范围进行查询(如适用)
  2. 点击"搜索"按钮执行查询

  3. 点击"重置"按钮清空查询条件

黑名单卸载或杀死支持两种导出方式

  • 同步导出:点击导出后,系统立即处理并返回导出结果。
  • 异步导出:当数据量较大时,系统采用异步导出方式。您可以在 导出任务管理模块 中查看进度并下载文件。

核心概念:黑名单管理 | 黑名单卸载/杀死明细管理 | 技术架构

技术架构

本模块的数据流转采用 Device -> HTTP API -> Kafka -> Consumer -> DB 的异步处理架构,确保高并发下的数据接收稳定性。

1. 数据流转图

Mermaid Diagram Code:

graph TD
    Device["Device (STB)"]
    Controller["AppEventReportController"]
    Service["DeviceEventService"]
    KafkaBlack["Kafka: black-call-back"]
    KafkaKill["Kafka: black-kill-call-back"]
    ConsumerBlack["BlackCallbackConsumer"]
    ConsumerKill["BlackKillCallbackConsumer"]
    DBFlow[("DB: flow_blacklisted_device")]
    DBKill[("DB: app_kill_record")]
    KafkaUpdate["Kafka: apk-uninstall-update"]

    Device -->|HTTP POST /task/recoedDeviceEvent| Controller
    Controller --> Service
    Service -->|BLACK_OP_CALL_BACK| KafkaBlack
    Service -->|BLACK_KILL_CALL_BACK| KafkaKill
    KafkaBlack --> ConsumerBlack
    KafkaKill --> ConsumerKill
    ConsumerBlack --> DBFlow
    ConsumerBlack -->|Publish| KafkaUpdate
    ConsumerKill --> DBKill

2. 处理逻辑详解

事件上报 (Event Reporting)

  • 接口: /task/recoedDeviceEvent
  • 入口: AppEventReportController.java
  • 逻辑: 设备端通过 HTTP POST 请求批量上报事件。DeviceEventService 根据事件类型 (BLACK_OP_CALL_BACKBLACK_KILL_CALL_BACK) 将数据分发到不同的 Kafka Topic。

消息队列 (Kafka)

系统使用 Kafka 进行削峰填谷,主要涉及以下 Topic:

业务类型Topic 配置名默认 Topic描述
黑名单卸载回调kafka.topic.black-call-backblack-call-back存储黑名单执行(如卸载)的回调数据
黑名单杀死回调kafka.topic.black-kill-call-backblack-kill-call-back存储黑名单拦截(Kill进程)的回调数据
卸载更新广播kafka.topic.apk-uninstall-updateapk-uninstall-update卸载记录入库后触发的后续业务通知

消费者处理 (Consumer)

  1. 卸载/操作回调 (BlackCallbackConsumer.java)

    • 监听 black-call-back Topic。
    • 解析 DeviceBlackCallbackEventDTO
    • 将记录插入 flow_blacklisted_device 表。
    • 联动: 入库成功后,发送消息到 apk-uninstall-update Topic,通知其他模块(如APK管理)更新状态。
  2. 杀死进程回调 (BlackKillCallbackConsumer.java)

    • 监听 black-kill-call-back Topic。
    • 解析 BlackKillCallBackEventDTO
    • 将记录插入 app_kill_record 表。

3. 数据模型关系

Mermaid Diagram Code:

erDiagram
    DeviceBlackCallbackEventDTO {
        Long id
        String mac
        List blackListIds
        long createTime
        String cpuid
    }
    FlowBlacklistedDeviceDO {
        Long id PK
        Long blacklistedId
        String mac
        String cpu
        Integer eventId
        Date deviceTime
        Date createTime
    }
    BlackKillCallBackEventDTO {
        int eventCode
        String mac
        String cpuid
        List blackKillCallBackEvents
    }
    AppKillRecordDO {
        Long id PK
        Date ts
        String mac
        String cpuId
        Long blackListId
        Integer frequency
        Date createTime
    }
    
    DeviceBlackCallbackEventDTO ||--|{ FlowBlacklistedDeviceDO : "Transforms to"
    BlackKillCallBackEventDTO ||--|{ AppKillRecordDO : "Transforms to"
AI 问答