欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決kafka:org.apache.kafka.common.errors.TimeoutException問題

 更新時(shí)間:2024年01月15日 09:55:54   作者:小明同學(xué)YYDS  
這篇文章主要介紹了解決kafka:org.apache.kafka.common.errors.TimeoutException問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

記錄使用kafka遇到的問題:

- 1.Caused by java.nio.channels.UnresolvedAddressException null

- 2.org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for t2-0: 30042 ms has passed since batch creation plus linger time

兩個(gè)報(bào)錯(cuò)是同一個(gè)問題。

問題重現(xiàn)

java 生產(chǎn)者向kafka集群生產(chǎn)消息,報(bào)錯(cuò)如下:

2018-06-03 00:10:02.071  INFO 80 --- [nio-8080-exec-1] o.a.kafka.common.utils.AppInfoParser     : Kafka version : 0.10.2.0
2018-06-03 00:10:02.071  INFO 80 --- [nio-8080-exec-1] o.a.kafka.common.utils.AppInfoParser     : Kafka commitId : 576d93a8dc0cf421
2018-06-03 00:10:32.253 ERROR 80 --- [ad | producer-1] o.s.k.support.LoggingProducerListener    : Exception thrown when sending a message with key='test1' and payload='hello122' to topic t2:

org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for t2-0: 30042 ms has passed since batch creation plus linger time

明顯連接kafka cluster超時(shí),但是實(shí)際上并不知道具體是什么原因。

排除找原因

確定kafka集群已經(jīng)啟動,包括zookeeper、kafka集群。

可以通過命令

ps -ef | grep java

個(gè)人排查,kafka集群即zookeeper已經(jīng)成功啟動

確定生產(chǎn)者程序一方的kafka配置是否有誤。

spring boot的配置如下

spring.kafka.bootstrap-servers=39.108.61.252:9092
spring.kafka.consumer.group-id=springboot-group1
spring.kafka.consumer.auto-offset-reset=earliest

自然也沒有問題

確定kafka集群所在機(jī)器防火墻或者說安全組是否已經(jīng)開放相關(guān)端口。

若是在windows上,打開telnet工具可以查看是否端口開放被監(jiān)聽

cmd進(jìn)入命令行

telnet 39.108.61.252 9092

執(zhí)行后成功連接,說明問題在程序所在的一方。

打開debug日志級別看錯(cuò)誤詳細(xì)信息

spring boot 的設(shè)置方式是:

logging.level.root=debug

然后重啟應(yīng)用

發(fā)現(xiàn)后臺在不停的刷錯(cuò)誤

如下:

2018-06-03 00:22:37.703 DEBUG 5972 --- [       t1-0-C-1] org.apache.kafka.clients.NetworkClient   : Initialize connection to node 0 for sending metadata request
2018-06-03 00:22:37.703 DEBUG 5972 --- [       t1-0-C-1] org.apache.kafka.clients.NetworkClient   : Initiating connection to node 0 at izwz9c79fdwp9sb65vpyk3z:9092.
2018-06-03 00:22:37.703 DEBUG 5972 --- [       t1-0-C-1] org.apache.kafka.clients.NetworkClient   : Error connecting to node 0 at izwz9c79fdwp9sb65vpyk3z:9092:

java.io.IOException: Can't resolve address: izwz9c79fdwp9sb65vpyk3z:9092
    at org.apache.kafka.common.network.Selector.connect(Selector.java:182) ~[kafka-clients-0.10.2.0.jar:na]
    at org.apache.kafka.clients.NetworkClient.initiateConnect(NetworkClient.java:629) [kafka-clients-0.10.2.0.jar:na]
    at org.apache.kafka.clients.NetworkClient.access$600(NetworkClient.java:57) [kafka-clients-0.10.2.0.jar:na]
    at org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:768) [kafka-clients-0.10.2.0.jar:na]
    at org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:684) [kafka-clients-0.10.2.0.jar:na]
    at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:347) [kafka-clients-0.10.2.0.jar:na]
    at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:226) [kafka-clients-0.10.2.0.jar:na]
    at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:203) [kafka-clients-0.10.2.0.jar:na]
    at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.awaitMetadataUpdate(ConsumerNetworkClient.java:138) [kafka-clients-0.10.2.0.jar:na]
    at org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorReady(AbstractCoordinator.java:216) [kafka-clients-0.10.2.0.jar:na]
    at org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorReady(AbstractCoordinator.java:193) [kafka-clients-0.10.2.0.jar:na]
    at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator.poll(ConsumerCoordinator.java:275) [kafka-clients-0.10.2.0.jar:na]
    at org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:1030) [kafka-clients-0.10.2.0.jar:na]
    at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:995) [kafka-clients-0.10.2.0.jar:na]
    at org.springframework.kafka.listener.KafkaMessageListenerContainer$ListenerConsumer.run(KafkaMessageListenerContainer.java:558) [spring-kafka-1.2.2.RELEASE.jar:na]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_144]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_144]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_144]
Caused by: java.nio.channels.UnresolvedAddressException: null
    at sun.nio.ch.Net.checkAddress(Net.java:101) ~[na:1.8.0_144]
    at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:622) ~[na:1.8.0_144]
    at org.apache.kafka.common.network.Selector.connect(Selector.java:179) ~[kafka-clients-0.10.2.0.jar:na]
    ... 17 common frames omitted

可知建立socket時(shí)不能解析kafka所在服務(wù)器地址

查看日志可知,解析的地址是izwz9c79fdwp9sb65vpyk3z

這個(gè)地址是遠(yuǎn)程服務(wù)器的實(shí)例名稱(阿里云服務(wù)器)。

自己配置的明明是ip,程序內(nèi)部卻去獲取他的別名,那如果生產(chǎn)者所在機(jī)器上沒有配置這個(gè)ip的別名,就不能解析到對應(yīng)的ip,所以連接失敗報(bào)錯(cuò)。

解決

windows則去添加一條host映射

C:\Windows\System32\drivers\etc\hosts

39.108.61.252 izwz9c79fdwp9sb65vpyk3z
127.0.0.1 localhost

linux則

vi /etc/hosts 修改方式一致

此時(shí)重啟生產(chǎn)者應(yīng)用

日志如下部分,成功啟動,后臺會一直在心跳檢測連接和更新offset,所以debug日志一直在刷,此時(shí)就可以把日志級別修改為info

2018-06-03 00:29:46.543 DEBUG 12772 --- [       t2-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator  : Group springboot-group1 committed offset 10 for partition t2-0
2018-06-03 00:29:46.543 DEBUG 12772 --- [       t2-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator  : Completed auto-commit of offsets {t2-0=OffsetAndMetadata{offset=10, metadata=''}} for group springboot-group1
2018-06-03 00:29:46.563 DEBUG 12772 --- [       t1-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator  : Group springboot-group1 committed offset 0 for partition t1-0
2018-06-03 00:29:46.563 DEBUG 12772 --- [       t1-0-C-1] o.a.k.c.c.internals.ConsumerCoordinator  : Completed auto-commit of offsets {t1-0=OffsetAndMetadata{offset=0, metadata=''}} for group springboot-group1
2018-06-03 00:29:46.672 DEBUG 12772 --- [       t2-0-C-1] o.a.k.c.consumer.internals.Fetcher       : Sending fetch for partitions [t2-0] to broker izwz9c79fdwp9sb65vpyk3z:9092 (id: 0 rack: null)
2018-06-03 00:29:46.867 DEBUG 12772 --- [       t1-0-C-1] essageListenerContainer$ListenerConsumer : Received: 0 records
2018-06-03 00:29:46.872 DEBUG 12772 --- [       t2-0-C-1] essageListenerContainer$ListenerConsumer : Received: 0 records

驗(yàn)證

進(jìn)行生產(chǎn)數(shù)據(jù),成功執(zhí)行!

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
 

相關(guān)文章

  • 一文看懂Mybatis中的延遲加載

    一文看懂Mybatis中的延遲加載

    這篇文章主要介紹了一文看懂Mybatis中的延遲加載,延遲加載也稱為懶加載,是指在進(jìn)行表的關(guān)聯(lián)查詢時(shí),按照設(shè)置延遲規(guī)則推遲對關(guān)聯(lián)對象的select查詢,MyBatis 的延遲加載只是對關(guān)聯(lián)對象的查詢有遲延設(shè)置,對于主加載對象都是直接執(zhí)行查詢語句的,需要的朋友可以參考下
    2023-10-10
  • Kafka使用Java客戶端進(jìn)行訪問的示例代碼

    Kafka使用Java客戶端進(jìn)行訪問的示例代碼

    本篇文章主要介紹了Kafka使用Java客戶端進(jìn)行訪問的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • SpringBoot MyBatis保姆級整合教程

    SpringBoot MyBatis保姆級整合教程

    因?yàn)镾pring Boot框架開發(fā)的便利性,所以實(shí)現(xiàn)Spring Boot與數(shù)據(jù)訪問層框架(例如MyBatis)的整合非常簡單,主要是引入對應(yīng)的依賴啟動器,并進(jìn)行數(shù)據(jù)庫相關(guān)參數(shù)設(shè)置即可
    2022-06-06
  • JavaSE的三大接口:Comparator,Comparable和Cloneable詳解

    JavaSE的三大接口:Comparator,Comparable和Cloneable詳解

    這篇文章主要介紹了詳解JavaSE中Comparator,Comparable和Cloneable接口的區(qū)別的相關(guān)資料,希望通過本文大家能徹底掌握這部分內(nèi)容,需要的朋友可以參考下
    2021-10-10
  • Java源碼解析ConcurrentHashMap的初始化

    Java源碼解析ConcurrentHashMap的初始化

    今天小編就為大家分享一篇關(guān)于Java源碼解析ConcurrentHashMap的初始化,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • mybatis-plus指定字段模糊查詢的實(shí)現(xiàn)方法

    mybatis-plus指定字段模糊查詢的實(shí)現(xiàn)方法

    最近項(xiàng)目中使用springboot+mybatis-plus來實(shí)現(xiàn),所以下面這篇文章主要給大家介紹了關(guān)于mybatis-plus實(shí)現(xiàn)指定字段模糊查詢的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • SpringBoot實(shí)現(xiàn)自定義線程池的方法

    SpringBoot實(shí)現(xiàn)自定義線程池的方法

    這篇文章主要介紹了SpringBoot中的自定義線程池解析,實(shí)現(xiàn)自定義線程池重寫spring默認(rèn)線程池的方式使用的時(shí)候,只需要加@Async注解就可以,不用去聲明線程池類,需要的朋友可以參考下
    2023-11-11
  • springmvc實(shí)現(xiàn)文件上傳功能

    springmvc實(shí)現(xiàn)文件上傳功能

    這篇文章主要為大家詳細(xì)介紹了springmvc實(shí)現(xiàn)文件上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Java淺析代碼塊與構(gòu)造塊及靜態(tài)塊三者之間的關(guān)系

    Java淺析代碼塊與構(gòu)造塊及靜態(tài)塊三者之間的關(guān)系

    所謂代碼塊是指用"{}"括起來的一段代碼,根據(jù)其位置和聲明的不同,可以分為普通代碼塊、構(gòu)造塊、靜態(tài)塊、和同步代碼塊。如果在代碼塊前加上synchronized關(guān)鍵字,則此代碼塊就成為同步代碼塊
    2022-07-07
  • SpringBoot實(shí)現(xiàn)分庫分表

    SpringBoot實(shí)現(xiàn)分庫分表

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)分庫分表,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02

最新評論