全部产品
Search
文档中心

云消息队列 Kafka 版:为什么不推荐使用Sarama Go客户端收发消息?

更新时间:May 27, 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。具体操作,请参见重置消费位点