用途:在 Python 中构建实时事件流管道,覆盖从生产事件、消费流、实时处理到生产运维的完整生命周期。适用于实时事件流管道、Kafka/MQTT/NATS 生产者与消费者、受限设备物联网数据接入、事件驱动微服务通信、变更数据捕获(CDC)、高吞吐日志聚合、恰好一次语义的流处理、背压与流控设计。不适用:批处理、云存储认证、湖仓表格式、工作流编排、数据质量框架、AI/ML 管道等,应改用相应技能。
工具选择:高吞吐事件流用 Kafka;物联网与受限网络用 MQTT;云原生微服务用 NATS JetStream;日志聚合与 CDC 用 Kafka;实时分析用 Kafka + ksqlDB;请求-应答用 NATS 核心。决策规则:高容量可重放事件日志用 Kafka,物联网和移动端弱连接用 MQTT,云原生微服务与更简单运维用 NATS。
核心流程:先设计流,明确消息量(每秒事件数、峰值与均值)、持久性要求(能否丢消息、是否需重放)、顺序保证(按键或全局)、投递语义、消费者模式(单消费者、消费者组或扇出)、模式演进;再实现生产者与消费者,示例中生产者使用 confluent_kafka 的 Producer 并设置 acks 为 all,消费者关闭自动提交并手动 commit;最后校验与运维,包括消费者延迟监控、死信队列、模式校验与幂等。
生产标准:至多一次用自动提交、可接受丢数据;至少一次用处理后手动提交;恰好一次用幂等消费者加事务写入。幂等模式需用去重存储(如 Redis/DB)检查消息 ID,处理后保存检查点并确认。错误处理区分可重试错误(退避重入队)与不可重试错误(进入死信队列),处理后始终确认以避免无限重试。
深入参考:Kafka 见 references/kafka.md(生产者、消费者、Schema Registry、ksqlDB);MQTT 见 references/mqtt.md(QoS、保留消息、遗嘱);NATS 见 references/nats.md(流、推拉消费者、工作队列)。该技能替代并整合了原有的 data-engineering-streaming。