apache-kafka - 自上次追加以来,卡夫卡生产者发送的消息已过期 30003 毫秒

标签 apache-kafka producer

我正在使用 Kafka 0.10.1.1 并编写了一个测试生产者,但在 producer.send 中出现错误onCompletion打回来:

        producer.send(record, new Callback() {
        @Override
        public void onCompletion(RecordMetadata metadata, Exception e) {
            if (e != null){
                System.out.println(e.getMessage());
            }
        }
    });

具有配置的生产者:timeout.ms=30000, linger.ms=5, batch.size=1000
收到以下错误消息:

Expiring 1 record(s) for testtopic-2 due to 30004 ms has passed since last append



但是这个错误信息只是有时出现。制片人有时可以工作得很好。

最佳答案

假设一个主题有 100 个分区 (0-99)。 Kafka 允许您通过指定特定分区为主题生成记录。面临我试图生成分区 > 99 的问题,因为代理拒绝这些记录。

您的主题(testtopic)极有可能在您尝试生成 testtopic-2 时少于 3 个分区。

关于apache-kafka - 自上次追加以来,卡夫卡生产者发送的消息已过期 30003 毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42196369/

相关文章:

apache-kafka - Kafka只消费一次保证

apache-kafka - CloudFormation - 如何将 bootsrap 参数添加到 Ksql Server

C:生产者/消费者

c - 多线程消费者,生产者 C 代码,不执行?

java - Spring Kafka - 如何使用组 ID 将偏移量重置为最新?

apache-kafka - Confluence S3 接收器连接器中的解析问题 [序列化错误]

apache-kafka - 不一致的连接器状态 : ConnectException: Task already exists in this worker

c - 响应 Kafka Producer 发送的消息生成 UUID

java - 更新 Java EE 7 CDI 应用程序中注入(inject)的域对象

java - Resteasy CDI 生产者 null