当前位置: 首页 > 知识库问答 >
问题:

Azure eventhub Kafkaorg.apache.kafka.common.errors.TimeoutException的一些记录

严峰
2023-03-14

有一个包含80到100条记录的ArrayList,试图将每条记录(POJO,而不是整个列表)流式发送到Kafka主题(event hub)。计划了一个cron作业,比如每小时将这些记录(POJO)发送到事件中心。

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

    Expiring 14 record(s) for eventhubname: 30125  ms has passed since batch creation plus linger time

以下是使用的生产者配置,

    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");

消息保留期-7分区-6使用spring Kafka(2.2.3)发送标记为@Async的事件方法,其中Kafka send被写入

    @Async
    protected void send() {
       kafkatemplate.send(record);
    }

预期-kafka Actual-org不会抛出异常。阿帕奇。Kafka。常见的错误。已抛出TimeoutException

共有2个答案

傅乐湛
2023-03-14

此异常表示您正在以比发送速度更快的速度对记录进行排队。将记录添加到批次后,发送该批次有一个时间限制,以确保在指定的持续时间内发送。这由生产者配置参数request控制。暂停。ms。如果批处理的排队时间超过超时限制,则会引发异常。该批中的记录将从发送队列中删除。

请查看下面的类似问题,这可能会更好。

Kafka制作人TimeoutException:1条记录过期

您也可以查看此链接

当-do-the-apache-kafka-client-stong-a-batch-perided-异常/34794261#34794261的原因有关批次过期异常的更多详细信息。

还要实施适当的重试策略。

注意:这不考虑扫描仪端的任何网络问题。由于网络问题,您将无法发送到任何一个集线器。

希望有帮助。

呼延曜灿
2023-03-14

Prakash——我们已经看到了一些问题,尖头生产者模式会看到批处理超时。

这里的问题是生产者有两个TCP连接可以空闲

  • 设置连接。麦克斯,空闲。涂女士

随时联系Github上的EH产品团队,我们对问题的反应相当好-https://github.com/Azure/azure-event-hubs-for-kafka

 类似资料:
  • offer先生用户运营 1.自我介绍 2.简历中的用户运营中你做的是怎样的工作 3.怎么做的社群拉新?社群的目的是什么?具体是怎么做的?(开始瞎编,没准备,没回答上来) 4.你比较成功的一件事 5.简历上去年实习的岗主要工作,遇到的困难 6.平时朋友会怎么形容你 7.职业规划 8.平时喜欢沟通吗 9.如何看待我们这个岗位 10.反问 11.目前还在看哪些行业的机会 这是到目前为止我遇到的问问题最全

  • lua 中 userdata如何包含信息,如何深拷贝 接口传递结构体的话,是装箱还是拆箱 协程底层是怎么实现的 c#深拷贝 进程线程具体包含或占用资源信息之类的 虚函数可以菱形继承吗 lua string底层是什么

  • 本文向大家介绍关于angular 8.1使用过程中的一些记录,包括了关于angular 8.1使用过程中的一些记录的使用技巧和注意事项,需要的朋友参考一下 说起来已经使用了大概一年半的angular,大概已经渐渐习惯了这个前端框架吧,但是具体的原理和底层的代码都没有仔细的看过。 前阵子以前做的一个项目有了新的需求,而且比较麻烦,讲讲做的过程中遇到的一些问题 首先是勾选状态的保持问题 在模板中思考了

  • 本文向大家介绍如何使用MySQL LIMIT订购记录并获取一些记录?,包括了如何使用MySQL LIMIT订购记录并获取一些记录?的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是查询以选择MySQL中的最后n行。在这里,我们首先在ASC中对其进行排序,并显示前4条记录- 这将产生

  • (更新中,一直到找到工作为止) 2023.3.17 ps: 最近签了家保底,不说是哪家了(工资一般)。签了保底后人就摆了,文章也很久没更新了,有一堆做过的笔试没写。后面不确定还投不投,可能会在不投后再来更新了:) 为了避免不必要的麻烦,不标注每道题来源公司。本文一方面是为了自己复盘,另一方面期待大佬的解答纠错。如需删除直接私信即可。 公司 贝格迈思,青葡萄科技,杭州宏杉科技,中电海南创新研究院,英

  • 我知道这是一个非常简单的问题,但我似乎找不到一个令人满意的答案。另外,我对Mongo完全是个新手。这显然无济于事。 假设我收藏了...我希望将mongo中的$toupper函数应用于具有_id和的记录的字段,而不是应用于具有的记录。 我一直在玩Mongo的聚合(针对我在google中发现的),但我得到的最多的是一个返回“name”字段的查询,但是: 它返回数据库中的所有记录(不仅是ObjectId