【问题标题】:Producer lost some message on kafka restart生产者在 kafka 重启时丢失了一些消息
【发布时间】:2019-08-10 21:34:34
【问题描述】:

卡夫卡客户端:0.11.0.0-cp1 卡夫卡经纪人:

在 Kafka 代理滚动重启时,我们的应用程序在发送到代理时丢失了一些消息。我相信滚动重启不应该有任何消息丢失。这些是我们正在使用的生产者(使用带有异步发送()的生产者而不使用回调/未来等)设置:


val acksConfig: String = "all",
val retriesConfig: Int = Int.MAX_VALUE,
val retriesBackOffConfig: Int = 1000,
val batchSize: Int = 32768,
val lingerTime: Int = 1,
val maxBlockTime: Int = Int.MAX_VALUE,
val requestTimeOut: Int = 420000,
val bufferMemory: Int = 33_554_432,
val compressionType: String = "gzip",
val keySerializer: Class<StringSerializer> = StringSerializer::class.java,
val valueSerializer: Class<ByteArraySerializer> = ByteArraySerializer::class.java

我在日志中看到了这些异常

2019-03-19 17:30:59,224 [org.apache.kafka.clients.producer.internals.Sender] [kafka-producer-network-thread | producer-1] (Sender.java:511) WARN  org.apache.kafka.clients.producer.internals.Sender  - Got error produce response with correlation id 1105790 on topic-partition catapult_on_entitlement_updates_prod-67, retrying (2147483643 attempts left). Error: NOT_LEADER_FOR_PARTITION

但是日志说重试尝试离开了,我很好奇为什么没有重试呢?如果有人有任何想法,请告诉我?

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    需要注意的两点:

    1. 您正在生成的主题的复制因子是多少?所需的 min.insync.replicas 数量是多少?
    2. “生产者丢失了一些消息”是什么意思。如果生产者不能成功地生产到#min.insync.replicas 代理,它将抛出异常并失败(对于同步生产)。在失败(同步或异步生产)的情况下重试由生产者/客户端决定。

    【讨论】:

    • 检查一下并告诉我-github.com/Shopify/sarama/issues/846 另外,尝试增加会话超时值
    • @Vassilis 感谢您的回答。 1.) min.insync.replicas 为 2,复制因子为 3。 2.) 那么在这种情况下它应该继续重试吗?当我说消息丢失时,我的意思是消费者从未收到它应该收到的一些消息,所以我认为我们丢失了。我没有看到我在上面发布的任何其他异常。
    • @cosmichema 我相信会话超时适用于消费者。
    • @mdev 尝试使用同步发送,如果生产出现任何问题(例如,存活的代理少于 2 个),发送方(客户端)应该会收到异常(docs.confluent.io/current/installation/configuration/…)。还要定义超时。重试逻辑由客户端编写,不会自动重试。
    • @mdev 内部生产者可能会重试超时(或其他错误),但不能保证成功,因此客户端应该有自己的重试逻辑。尝试使用标准的 kafka 控制台消费者来检查消息是否确实产生了。如果你没有收到异常,那么它应该。
    猜你喜欢
    • 2021-03-17
    • 2017-02-28
    • 2018-09-15
    • 2019-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多