[英]How can we ensure reliable and low-latency kafka writing using confluent-kafka-go client?
https://github.com/confluentinc/confluent-kafka-go上的示例生產者代碼調用Producer.Produce(...)
它將消息寫入發送緩沖區隊列並立即返回。 但是,寫入內部緩沖區隊列並不能保證消息傳遞成功。 我們如何確保在這里成功傳遞消息?
for idx, word := range []string{"Welcome", "to", "the",
"Confluent", "Kafka", "Golang", "client"} {
start_time := time.Now().UnixNano()
p.Produce(&kafka.Message{
TopicPartition: kafka.TopicPartition{Topic: &topic,
Partition: kafka.PartitionAny},
Value: []byte(word),
}, nil)
}
要立即阻止和發送數據,您需要調用生產者的 Flush 方法
https://github.com/confluentinc/confluent-kafka-go/blob/master/kafka/producer.go#L335
為確保其寫入可靠,請設置 acks=all 生產者配置並確保將主題配置為具有最小同步副本為 2 或更多,主題復制因子為 3 或更多
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.