【Kafka】TimeoutException: Topic device-state-in-topic not present in metadata after 60000 ms.

这篇具有很好参考价值的文章主要介绍了【Kafka】TimeoutException: Topic device-state-in-topic not present in metadata after 60000 ms.。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.问题原因

org.springframework.kafka.KafkaException: Send failed; nested exception is org.apache.kafka.common.errors.TimeoutException: 
Topic device-state-in-topic not present in metadata after 60000 ms.

翻译过来就是:因为Kafka生产者在发送消息时,无法在指定的时间内获取到topic的元数据信息。

2.问题排查

1. Kafka集群中的某个broker宕机或不可用,导致无法获取到topic的元数据信息。
查看集群监控,每个节点都能ping通所以这个没问题。

2. 网络连接不稳定或延迟过高,导致无法及时获取到topic的元数据信息。
相同节点的topic都在正常生产和消费也不是这个问题

3.Kafka版本不兼容,导致无法获取到topic的元数据信息。
这个也不是,版本之前都核对过了

4.项目配置或者业务问题
我们生产到这个topic是一天发一次,在项目里面的其他topic几分钟一次或者实时的都没有问题,那怀疑是不是发送间隔时间太长了,导致的这个问题,我开始写了一个定时任务5分钟往这个topic发一条空数据,观察一天后,果然是这个原因。

我查看了一些kafka的生产者配置 看到下面的配置:

 kafka:
        #连接地址
        bootstrap-servers: 127.0.0.1:9092
        producer:
            properties:
                metadata:
                    max:
                        age:
                            ms: 300000

这个参数意思是:
metadata.max.age.ms是Kafka配置中的一个参数,用于指定元数据的最大生存时间(以毫秒为单位)。

元数据是Kafka中存储有关topic、partition、broker等信息的数据结构。当客户端连接到Kafka集群时,它会向集群的每个broker发送请求以获取元数据。如果元数据在一定时间内没有被更新,那么它将过期并需要重新获取。

我设置成5分钟,元数据在 metadata.max.age.ms 所限定的时间范围内没有进行更新,则会被强制更新,就解决了这个问题。文章来源地址https://www.toymoban.com/news/detail-665187.html

到了这里,关于【Kafka】TimeoutException: Topic device-state-in-topic not present in metadata after 60000 ms.的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • kafka topic和topic权限操作

    创建 查询 删除 增加 移除 查询

    2024年02月12日
    浏览(37)
  • Kafka - TimeoutException: Expiring 1 record(s) for art-0:120001 ms has passed since batch creation

    报错如下: 这种情况,肯定要先看网络问题嘛 首先查看本机防火墙的配置 结果都是关闭的 (建议开放特定端口) 不关闭防火墙,但是建议本机防火墙开放特定端口,可以使用如下命令 (使用root账户) 比如 接着看看kafka中间件的配置, 问题就在这里 我并没有大改配置,具

    2024年02月04日
    浏览(44)
  • Kafka/Spark-01消费topic到写出到topic

    消费者代码 注意点 consumerConfigs是定义的可变的map的类型的,具体如下 consumerConfigs.put(ConsumerConfig.GROUP_ID_CONFIG , groupId)是为了不限制groupId特意写的传参 是使用自带的kafka工具类createDirectStream方法去消费kafak 的数据,详细参数解释如下 Subscribe传参需要指定泛型,这边指定string,

    2024年02月09日
    浏览(33)
  • Kafka 清空Topic

    测试环境某topic的数据格式发生了更改,需要将原有数据清空重新生产数据。 还需检查当前kafka topic对应的分区副本(假定单分区单副本)大小,用于验证数据是否已删除。 将过期时间设置为1秒 直到该文件夹显示大小是20K即证明数据已清理 同时需注意,数据清理时机受ser

    2024年01月16日
    浏览(42)
  • kafka删除topic

    1. 首先需要在config/server.properties中添加 delete.topic.enable=true 属性 2. 用topic list找到想要删除的topic名称 3. 执行删除命令

    2024年02月11日
    浏览(42)
  • Flink实现同时消费多个kafka topic,并输出到多个topic

    1)代码使用的 flink版本为1.16.1 ,旧版本的依赖及api可能不同,同时使用了hutool的JSON工具类,两者均可自行更换; 2)本次编写的两个方案,均只适用于 数据源topic来自同一个集群 ,且kafka消费组相同,暂未研究flink的connect算子join多条流 代码涉及 Hadoop相关环境 ,若无该环境

    2023年04月20日
    浏览(85)
  • kafka--kafka的基本概念-topic和partition

    topic是逻辑概念 以Topic机制来对消息进行分类的,同一类消息属于同一个Topic,你可以将每个topic看成是一个消息队列。 生产者(producer)将消息发送到相应的Topic,而消费者(consumer)通过从Topic拉取消息来消费 kafka中是要求消费者主动拉取消息消费的,它并不会主动推送消息

    2024年02月12日
    浏览(45)
  • kafka topic分区数设定

    然后假设总的目标吞吐量是Tt,那么分区数=Tt / min(Tp,Tc) 例如:producer吞吐量 = 70m/s;consumer吞吐量 =100m/s,期望吞吐量 300m/s; 分区数 = 300 / 70 = 4或者5个分区

    2024年02月02日
    浏览(53)
  • kafka2.x常用命令:创建topic,查看topic列表、分区、副本详情,删除topic,测试topic发送与消费

    原创/朱季谦 接触kafka开发已经两年多,也看过关于kafka的一些书,但一直没有怎么对它做总结,借着最近正好在看《Apache Kafka实战》一书,同时自己又搭建了三台kafka服务器,正好可以做一些总结记录。 本文主要是记录如何在kafka集群服务器上创建topic,查看topic列表、分区、

    2024年02月03日
    浏览(45)
  • kafka @KafkaListener 动态接收topic

    @KafkaListener 里边的 topics 必须是常量,不可以是变量 但是某些业务场景 kafka定义的topic会不同这时候就需要传入变量才可以实现 具体实现方式如下: KafkaListener 监听方法 #{}  这里边是方法名称  这里是获取topic 其实可以在对应的@Bean里边写逻辑方法去处理 这里用到了获取配

    2024年02月13日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包