← ClaudeAtlas

kafka-golisted

Go Kafka 专家 - 使用 confluent-kafka-go 进行生产消费(同步/异步/批量)、分区策略、消费者组(Rebalance)、Exactly-Once 事务、死信队列(DLQ)、OpenTelemetry 链路追踪。适用:事件驱动架构、日志收集、流处理管道、消息顺序保证。不适用:低延迟 RPC(用 gRPC);小规模简单队列(用 Redis Pub/Sub);复杂路由/延迟队列(用 RabbitMQ/Pulsar)。触发词:kafka, 消息队列, producer, consumer, 消费者组, 分区, partition, DLQ, 死信, exactly-once, 事务, confluent
omeyang/Thoth · ★ 0 · AI & Automation · score 73
Install: claude install-skill omeyang/Thoth
# Go Kafka 专家 使用 Go confluent-kafka-go 开发 Kafka 功能:$ARGUMENTS --- ## 1. 客户端管理 ### 创建生产者 ```go func NewKafkaProducer(brokers string) (*kafka.Producer, error) { return kafka.NewProducer(&kafka.ConfigMap{ "bootstrap.servers": brokers, "acks": "all", "enable.idempotence": true, "retries": 3, "linger.ms": 5, "batch.size": 16384, "compression.type": "lz4", "max.in.flight.requests.per.connection": 5, }) } ``` ### 创建消费者 ```go func NewKafkaConsumer(brokers, groupID string) (*kafka.Consumer, error) { return kafka.NewConsumer(&kafka.ConfigMap{ "bootstrap.servers": brokers, "group.id": groupID, "auto.offset.reset": "earliest", "enable.auto.commit": false, // 手动提交 "session.timeout.ms": 30000, "max.poll.interval.ms": 300000, }) } ``` ### 包装器模式 XKit 的 xkafka 使用**两层包装**架构:基础包装器 + 增强包装器(Tracing/DLQ)。 ```go // 基础包装器 - 暴露底层客户端,提供健康检查和统计 type producerWrapper struct { producer *kafka.Producer // 线程安全 mu sync.Mutex // 保护管理操作(Health/Flush/Close) // atomic 统计: MessagesProduced, BytesProduced, Errors, QueueLength } // Producer() 暴露底层生产者用于直接 Produce() 调用 func (w *producerWrapper) Producer() *kafka.Producer func (w *producerWrapper) Health(ctx context.Context) error func (w *producerWrapper) Stats() ProducerStats func (w *producerWrapper) Close() error // Flush + Close ``` **