SuperAPI AI 工具集

streaming-and-messaging-systems

数据与分析

查看项目

更新于 10-16 06:37

技能介绍

用途

该技能用于持续数据移动与实时处理场景,帮助智能体围绕消息代理和流处理器(如 Kafka、Kinesis、Flink)设计安全的事件管道,重点关注顺序、状态、重放、模式演进和投递保证。

适用场景

  • 设计或修改 Kafka 主题、消费者或流处理器
  • 使用 Kinesis 进行事件摄取或流式投递
  • 实现 Flink 作业或有状态流转换
  • 定义近实时管道、窗口、水位线和重放行为
  • 处理事件驱动系统的模式与契约

当工作负载为纯批处理且不需要流语义时,不应使用该技能。

工作流程

  1. 定义事件契约,包括:事件键、模式与版本管理、顺序预期、投递保证、保留与重放策略。
  2. 选择正确的平台角色:Kafka 作为持久事件骨干和广泛生态;Kinesis 作为 AWS 原生的流式摄取与传输;Flink 用于有状态流处理和事件时间逻辑。
  3. 针对状态和迟到数据进行设计,需考虑:水位线、窗口、去重、精确一次或至少一次语义、检查点与恢复。
  4. 使消费者行为可观测。滞后、失败的检查点、毒消息、模式漂移和死信处理应被提前规划,而不是在生产环境中才发现。
  5. 将重放视为一等操作。重新处理事件不应依赖人工猜测。

常见误区

  • “流处理只是更快的批处理。”——流处理引入了批处理系统不具备的顺序、状态、重放和时间语义。
  • “事件很小,可以忽略模式演进。”——事件大小不会降低契约风险;模式漂移可能破坏大量下游消费者。
  • “精确一次是自动的。”——投递语义取决于端到端设计、状态处理、接收器和重放行为。

危险信号

  • 没有明确的事件契约或键策略
  • 重放和保留策略未定义
  • 时间语义是假设的而非明确指定的
  • 缺少消费者滞后和死信策略
  • 有状态处理没有检查点或恢复计划

验证清单

  • 事件模式、键、保留和重放规则已定义
  • 代理层与处理器层的平台职责清晰
  • 时间语义、状态和恢复设计明确
  • 对滞后、失败和坏记录具备运维可见性

相关技能

  • 生产环境 Kafka 加固:加载 kafka-resilience-and-schema-evolution
  • 变更前查看实时滞后或代理元数据:加载 mcp-data-observability-integration