簡體   English   中英

我們如何使用 confluent-kafka-go 客戶端確保可靠和低延遲的 kafka 編寫?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM