SuperAPI AI 工具集

kafka-consumer-implementation

编程与开发

查看项目

更新于 10-15 20:34

技能介绍

用途:实现生产级 Kafka 消费者,可靠消费并处理领域事件,兼顾高性能、类型安全与错误恢复。适用于构建事件驱动系统,从 Kafka 主题消费领域事件,如处理订单消息。不适用于单元测试中模拟消费者、实现生产者或使用 testcontainers 测试。

主要能力:使用 msgspec 反序列化(据称比 Pydantic 快 10-20 倍);confluent-kafka 配置;手动偏移量管理以实现精确一次语义;OpenTelemetry 分布式追踪;防腐层将消息模式转换为领域模型;结构化日志与错误处理。

使用方式:定义 msgspec.Struct 消息模式;实现消费者类,配置 bootstrap.servers、group.id、auto.offset.reset、enable.auto.commit 等;订阅主题;poll 消息并解码;处理成功后手动 commit;用上下文管理器管理生命周期。关键配置示例:"enable.auto.commit": False、"auto.offset.reset": "earliest"、"session.timeout.ms": 300000、"max.poll.interval.ms": 300000。

依赖要求:confluent-kafka>=2.3.0、msgspec>=0.18.6、structlog>=23.2.0、opentelemetry-api>=1.22.0,Kafka/Redpanda 3.x 或更高,Python 3.11+。

限制与错误处理:反序列化失败记录并提交偏移量跳过毒丸消息;处理失败不提交,重启后重试;提交失败记录并继续。消费者组内成员共享分区,加入或离开时自动再平衡。测试可用 testcontainers 的 KafkaContainer 做集成测试。完整代码见 references/detailed-implementation.md 等资料。