使用 sarama 库手动提交偏移量变得非常慢

Commit the offset by manual using sarama library becomes very slow

提问人:George 提问时间:11/14/2023 最后编辑:egleaseGeorge 更新时间:11/15/2023 访问量:27

问:

当我使用 kafka-producer-perf-test.sh 模拟生产者向具有 2 个分区的主题“t”发送 10,000 条消息,并使用下面提到的设置为 3 的消费者代码时,我观察到,当使用消息编号 9,748 时,操作变得非常慢,大约需要 500-1,004 毫秒。但是,当使用数字 9,747 以上的消息时,该操作只需要大约 1-3 毫秒。dfv1.CommitNsess.Commit()sess.Commit()

func (h *handler) ConsumeClaim(sess sarama.ConsumerGroupSession, claim sarama.ConsumerGroupClaim) error {
    i := 0
    for m := range claim.Messages() {
    msg := m.Value
    if err := h.f(context.Background(), msg); err != nil {
        // noop
    } else {
        sess.MarkMessage(m, "")
        i++
        if i%dfv1.CommitN == 0 {
            t1 := time.Now()
        sess.Commit()
            t2 := time.Now()
            fmt.Printf("consume cost: %d ms\n", t2.Sub(t1).milliSeconds)
        }
    }
    }
    return nil
}

为什么消费消息编号 9747 后消费变慢?

希望每个成本时间约为 1-3 毫秒sess.Commit()

go apache-kafka commit sarama

评论


答: 暂无答案