相关疑难解决方法(0)

Apache Kafka客户端何时抛出"批量过期"异常?

使用Apache Kafka Java客户端(0.9),我正在尝试使用Kafka Producer类向代理发送一长串记录.

异步发送方法立即返回一段时间,然后在短时间内开始阻塞每次调用.大约三十秒后,客户端开始抛出异常(TimeoutException),并显示消息"Batch expired".

什么情况导致抛出此异常?

java apache-kafka message-hub ibm-cloud

36
推荐指数
2
解决办法
3万
查看次数

某些记录的 Azure eventhub Kafka org.apache.kafka.common.errors.TimeoutException

有一个包含 80 到 100 条记录的 ArrayList 尝试将每个单独的记录(POJO,而不是整个列表)流式传输并发送到 Kafka 主题(事件中心)。每小时安排一次 cron 作业,将这些记录 (POJO) 发送到事件中心。

能够看到发送到 eventhub 的消息,但在 3 到 4 次成功运行后出现以下异常(其中包括正在发送的几条消息和几条因以下异常而失败的消息)

    Expiring 14 record(s) for eventhubname: 30125  ms has passed since batch creation plus linger time
Run Code Online (Sandbox Code Playgroud)

以下是使用的 Producer 的配置,

    props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
    props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
    props.put(ProducerConfig.ACKS_CONFIG, "1");
    props.put(ProducerConfig.RETRIES_CONFIG, "3");
Run Code Online (Sandbox Code Playgroud)

Message Retention period - 7 Partition - 6 使用spring Kafka(2.2.3)发送标记为@Async写kafka发送的事件的方法

    @Async
    protected void send() {
       kafkatemplate.send(record);
    }
Run Code Online (Sandbox Code Playgroud)

预期 - kafka 不会抛出异常 实际 - org.apache.kafka.common.errors.TimeoutException 被抛出

java apache-kafka spring-boot azure-eventhub

1
推荐指数
1
解决办法
915
查看次数