全部產品
Search
文件中心

ApsaraMQ for Kafka:為什麼不推薦使用Sarama Go用戶端收發訊息?

更新時間:May 28, 2025

問題現象

Sarama Go用戶端存在以下已知問題:

  • 當Topic新增分區時,Sarama Go用戶端有機率無法感知並消費新增分區,需要用戶端重啟後,才能消費到新增分區。

  • Sarama Go用戶端很多協議未遵從Kafka社區規範,例如在服務端異常宕機時,可能會出現以下問題:

    • 有機率導致用戶端觸發OutOfRange機制。如果用戶端的消費位點重設原則設定為Oldest(earliest)時,會從最小位點開始重新消費所有訊息。

    • 有機率導致用戶端一直處於Rebalance狀態。

解決方案

建議儘早將Sarama Go用戶端替換為Confluent Go用戶端。

Confluent Go用戶端的Demo地址,請訪問kafka-confluent-go-demo

重要

如果無法在短期內替換用戶端,請注意以下事項:

  • 針對生產環境,請將位點重設原則設定為Newest(latest);針對測試環境,或者其他明確可以接收大量重複訊息的情境,設定為Oldest(earliest)

  • 如果發生了位點重設,產生大量堆積,您可以使用雲訊息佇列 Kafka 版控制台提供的重設消費位點功能,手動重設消費位點到某一時間點,無需改代碼或換Consumer Group。具體操作,請參見重設消費位點