用途:实现生产级 Kafka 生产者,可靠地发布领域事件,兼顾高性能、类型安全与错误处理。适用于构建向 Kafka 主题发送领域事件的发布器,如订单事件。不适用于消费事件、testcontainers 测试或 schema 设计。
主要能力:使用 msgspec.Struct 定义不可变消息 schema(frozen=True,使用 str/float/int 等原始类型,时间戳存为 ISO 8601 字符串),序列化速度据称比 Pydantic 快 10-20 倍;通过 confluent-kafka 的 Producer 配置 acks=all、enable.idempotence=True、max.in.flight.requests.per.connection=1、compression.type=snappy 等实现幂等与顺序保证;集成 OpenTelemetry 分布式追踪与 structlog 结构化日志;提供防腐层将领域模型转换为消息 DTO;支持优雅关闭与 flush。
使用方式:定义消息 schema,实现生产者适配器(produce 时以业务键如 order_id 作为分区键,调用 poll(0)),在用例中翻译并发布事件,最后 flush。低延迟配置 linger.ms=0、batch.size=16384;高吞吐配置 linger.ms=100、batch.size=131072、compression.type=lz4。
依赖: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+。
限制:资料未提供具体价格、平台支持范围或性能基准的完整数据;错误处理与完整实现代码见其 references 与 examples 文件。