用途
该技能用于持续数据移动与实时处理场景,帮助智能体围绕消息代理和流处理器(如 Kafka、Kinesis、Flink)设计安全的事件管道,重点关注顺序、状态、重放、模式演进和投递保证。
适用场景
- 设计或修改 Kafka 主题、消费者或流处理器
- 使用 Kinesis 进行事件摄取或流式投递
- 实现 Flink 作业或有状态流转换
- 定义近实时管道、窗口、水位线和重放行为
- 处理事件驱动系统的模式与契约
当工作负载为纯批处理且不需要流语义时,不应使用该技能。
工作流程
- 定义事件契约,包括:事件键、模式与版本管理、顺序预期、投递保证、保留与重放策略。
- 选择正确的平台角色:Kafka 作为持久事件骨干和广泛生态;Kinesis 作为 AWS 原生的流式摄取与传输;Flink 用于有状态流处理和事件时间逻辑。
- 针对状态和迟到数据进行设计,需考虑:水位线、窗口、去重、精确一次或至少一次语义、检查点与恢复。
- 使消费者行为可观测。滞后、失败的检查点、毒消息、模式漂移和死信处理应被提前规划,而不是在生产环境中才发现。
- 将重放视为一等操作。重新处理事件不应依赖人工猜测。
常见误区
- “流处理只是更快的批处理。”——流处理引入了批处理系统不具备的顺序、状态、重放和时间语义。
- “事件很小,可以忽略模式演进。”——事件大小不会降低契约风险;模式漂移可能破坏大量下游消费者。
- “精确一次是自动的。”——投递语义取决于端到端设计、状态处理、接收器和重放行为。
危险信号
- 没有明确的事件契约或键策略
- 重放和保留策略未定义
- 时间语义是假设的而非明确指定的
- 缺少消费者滞后和死信策略
- 有状态处理没有检查点或恢复计划
验证清单
- 事件模式、键、保留和重放规则已定义
- 代理层与处理器层的平台职责清晰
- 时间语义、状态和恢复设计明确
- 对滞后、失败和坏记录具备运维可见性
相关技能
- 生产环境 Kafka 加固:加载 kafka-resilience-and-schema-evolution
- 变更前查看实时滞后或代理元数据:加载 mcp-data-observability-integration